Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 傳感器--光照傳感器詳解及使用

Android 傳感器--光照傳感器詳解及使用

編輯:關於Android編程

Android 設備中有許多傳感器,其中有一個傳感器控制著你屏幕亮度的變化。當你在很暗的地方使用手機,你設備的屏幕會自動調暗,從而保護你眼睛。

起著這樣作用,Android是通過一款光照傳感器來獲取你周圍環境亮度的變化。光照傳感器一般在手機的頂部的位置。

要在程序中使用這款傳感器

(1)首先要獲取SensorManager傳感器管理器服務:SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);

(2)獲取光照傳感器:Sensor liaghtSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)//Sensor.TYPE_LIGHT 代表光照傳感器

(3)注冊和監視光照傳感器:

sensorManager.registerListener(new SensorEventListener() {
 @Override
 public void onSensorChanged(SensorEvent event) {
//監視傳感器的改變

//accuracy 傳感器的精度 通過event.accuracy獲取

//values 傳感器傳回的數值 如event.values[0] 獲取光線強度lux

//timestamp 傳感器事件發生的時間(以納秒為單位)
}

 @Override
 public void onAccuracyChanged(Sensor sensor, int accuracy) {
//對傳感器精度的改變做出反應
}
 }, sensor, SensorManager.SENSOR_DELAY_NORMAL);

一個簡單的獲取光照傳感器光線強度lux的代碼:

public class MainActivity extends Activity {

  private TextView value_tv;

  private SensorManager sensorMamager;

  private Sensor sensor;

  @Override

  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    value_tv=(TextView) findViewById(R.id.value_tv);

    //獲取SensorManager對象

    sensorMamager=(SensorManager) getSystemService(SENSOR_SERVICE);

    //獲取Sensor對象

    sensor=sensorMamager.getDefaultSensor(Sensor.TYPE_LIGHT);

    sensorMamager.registerListener(new SensorEventListener() {

       

      @Override

      public void onSensorChanged(SensorEvent event) {

         //獲取精度 

        float acc = event.accuracy; 

        //獲取光線強度 

        float lux = event.values[0];  

        value_tv.setText("acc:"+acc+";"+"lux:"+lux);

      }

       

      @Override

      public void onAccuracyChanged(Sensor sensor, int accuracy) {

        // TODO 自動生成的方法存根

      }

    }, sensor, SensorManager.SENSOR_DELAY_NORMAL);

  }

} 

對於一些程序,在改變當前程序屏幕亮度的時候,可以考慮加入光照傳感器的判斷。

因為大部分這些程序,會出現這樣的一個問題,當(在非自動亮度調節模式)設定屏幕亮度為一個值時,再設置為自動亮度調節模式的時候是無效的。

 以上就是對Android 傳感器 光照傳感的資料整理,後續繼續補充相關資料,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved