Android 傳感器--光照傳感器詳解及使用
Android 設備中有許多傳感器,其中有一個傳感器控制著你屏幕亮度的變化。當你在很暗的地方使用手機,你設備的屏幕會自動調(diào)暗,從而保護你眼睛。
起著這樣作用,Android是通過一款光照傳感器來獲取你周圍環(huán)境亮度的變化。光照傳感器一般在手機的頂部的位置。
要在程序中使用這款傳感器
(1)首先要獲取SensorManager傳感器管理器服務:SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
(2)獲取光照傳感器:Sensor liaghtSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)//Sensor.TYPE_LIGHT 代表光照傳感器
(3)注冊和監(jiān)視光照傳感器:
sensorManager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
//監(jiān)視傳感器的改變
//accuracy 傳感器的精度 通過event.accuracy獲取
//values 傳感器傳回的數(shù)值 如event.values[0] 獲取光線強度lux
//timestamp 傳感器事件發(fā)生的時間(以納秒為單位)
}
@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);
}
}
對于一些程序,在改變當前程序屏幕亮度的時候,可以考慮加入光照傳感器的判斷。
因為大部分這些程序,會出現(xiàn)這樣的一個問題,當(在非自動亮度調(diào)節(jié)模式)設定屏幕亮度為一個值時,再設置為自動亮度調(diào)節(jié)模式的時候是無效的。
以上就是對Android 傳感器 光照傳感的資料整理,后續(xù)繼續(xù)補充相關資料,謝謝大家對本站的支持!
- android 傳感器(OnSensorChanged)使用介紹
- Android利用方向傳感器獲得手機的相對角度實例說明
- Android利用Sensor(傳感器)實現(xiàn)指南針小功能
- Android重力傳感器實現(xiàn)滾動的彈球
- Android操作系統(tǒng)介紹之11種傳感器
- Android利用Sensor(傳感器)實現(xiàn)水平儀功能
- Android編程實現(xiàn)獲取所有傳感器數(shù)據(jù)的方法
- Android利用傳感器實現(xiàn)微信搖一搖功能
- Android 重力傳感器在游戲開發(fā)中的應用
- Android 獲取傳感器列表整理及簡單實例
- Android利用傳感器仿微信搖一搖功能
- Android開發(fā)獲取傳感器數(shù)據(jù)的方法示例【加速度傳感器,磁場傳感器,光線傳感器,方向傳感器】
相關文章
Android FTP 多線程斷點續(xù)傳下載\上傳的實例
本篇文章主要介紹了Android FTP 多線程斷點續(xù)傳下載\上傳的實例,具有一定的參考價值,有興趣的可以了解一下2017-08-08
Android編程實現(xiàn)ListView頭部ViewPager廣告輪詢圖效果
這篇文章主要介紹了Android編程實現(xiàn)ListView頭部ViewPager廣告輪詢圖效果,較為詳細的分析了自定義ListView實現(xiàn)ViewPager廣告圖輪詢的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10
Android 使用AlarmManager和NotificationManager來實現(xiàn)鬧鐘和通知欄
這篇文章主要介紹了Android 使用AlarmManager和NotificationManager來實現(xiàn)鬧鐘和通知欄,需要的朋友可以參考下2017-02-02
Android中l(wèi)istview嵌套scrollveiw沖突的解決方法
這篇文章主要為大家詳細介紹了Android中l(wèi)istview嵌套scrollveiw沖突的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01

