Android 傳感器--光照傳感器詳解及使用
Android 設(shè)備中有許多傳感器,其中有一個(gè)傳感器控制著你屏幕亮度的變化。當(dāng)你在很暗的地方使用手機(jī),你設(shè)備的屏幕會(huì)自動(dòng)調(diào)暗,從而保護(hù)你眼睛。
起著這樣作用,Android是通過(guò)一款光照傳感器來(lái)獲取你周圍環(huán)境亮度的變化。光照傳感器一般在手機(jī)的頂部的位置。
要在程序中使用這款傳感器
(1)首先要獲取SensorManager傳感器管理器服務(wù):SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
(2)獲取光照傳感器:Sensor liaghtSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)//Sensor.TYPE_LIGHT 代表光照傳感器
(3)注冊(cè)和監(jiān)視光照傳感器:
sensorManager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
//監(jiān)視傳感器的改變
//accuracy 傳感器的精度 通過(guò)event.accuracy獲取
//values 傳感器傳回的數(shù)值 如event.values[0] 獲取光線強(qiáng)度lux
//timestamp 傳感器事件發(fā)生的時(shí)間(以納秒為單位)
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
//對(duì)傳感器精度的改變做出反應(yīng)
}
}, sensor, SensorManager.SENSOR_DELAY_NORMAL);
一個(gè)簡(jiǎn)單的獲取光照傳感器光線強(qiáng)度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對(duì)象
sensorMamager=(SensorManager) getSystemService(SENSOR_SERVICE);
//獲取Sensor對(duì)象
sensor=sensorMamager.getDefaultSensor(Sensor.TYPE_LIGHT);
sensorMamager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
//獲取精度
float acc = event.accuracy;
//獲取光線強(qiáng)度
float lux = event.values[0];
value_tv.setText("acc:"+acc+";"+"lux:"+lux);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO 自動(dòng)生成的方法存根
}
}, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
}
對(duì)于一些程序,在改變當(dāng)前程序屏幕亮度的時(shí)候,可以考慮加入光照傳感器的判斷。
因?yàn)榇蟛糠诌@些程序,會(huì)出現(xiàn)這樣的一個(gè)問(wèn)題,當(dāng)(在非自動(dòng)亮度調(diào)節(jié)模式)設(shè)定屏幕亮度為一個(gè)值時(shí),再設(shè)置為自動(dòng)亮度調(diào)節(jié)模式的時(shí)候是無(wú)效的。
以上就是對(duì)Android 傳感器 光照傳感的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!
- android 傳感器(OnSensorChanged)使用介紹
- Android利用方向傳感器獲得手機(jī)的相對(duì)角度實(shí)例說(shuō)明
- Android利用Sensor(傳感器)實(shí)現(xiàn)指南針小功能
- Android重力傳感器實(shí)現(xiàn)滾動(dòng)的彈球
- Android操作系統(tǒng)介紹之11種傳感器
- Android利用Sensor(傳感器)實(shí)現(xiàn)水平儀功能
- Android編程實(shí)現(xiàn)獲取所有傳感器數(shù)據(jù)的方法
- Android利用傳感器實(shí)現(xiàn)微信搖一搖功能
- Android 重力傳感器在游戲開(kāi)發(fā)中的應(yīng)用
- Android 獲取傳感器列表整理及簡(jiǎn)單實(shí)例
- Android利用傳感器仿微信搖一搖功能
- Android開(kāi)發(fā)獲取傳感器數(shù)據(jù)的方法示例【加速度傳感器,磁場(chǎng)傳感器,光線傳感器,方向傳感器】
相關(guān)文章
Android實(shí)現(xiàn)手機(jī)震動(dòng)抖動(dòng)效果的方法
今天小編就為大家分享一篇關(guān)于Android實(shí)現(xiàn)手機(jī)震動(dòng)抖動(dòng)效果的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
Android實(shí)現(xiàn)倒計(jì)時(shí)的按鈕的示例代碼
本篇文章主要介紹了Android實(shí)現(xiàn)倒計(jì)時(shí)的按鈕的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
RXjava網(wǎng)絡(luò)獲取圖片數(shù)據(jù)的方法
這篇文章主要為大家詳細(xì)介紹了RXjava網(wǎng)絡(luò)獲取圖片數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Android集成騰訊X5實(shí)現(xiàn)文檔瀏覽功能
Android內(nèi)部沒(méi)有控件來(lái)直接顯示文檔,跳轉(zhuǎn)WPS或其他第三方文檔App體驗(yàn)性不好,使用騰訊X5內(nèi)核能很好的解決的這一問(wèn)題這篇文章主要介紹了Android集成騰訊X5實(shí)現(xiàn)文檔瀏覽功能,需要的朋友可以參考下2019-10-10
go語(yǔ)言之美迅速打rpm包實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了go語(yǔ)言之美迅速打rpm包實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android 自動(dòng)化測(cè)試經(jīng)驗(yàn)分享 UiObejct.getFromParent()的使用方法
本篇文章對(duì)Android中UiObejct.getFromParent()的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05
詳解Android TableLayout中stretchColumns、shrinkColumns的用法
這篇文章主要介紹了Android TableLayout中stretchColumns、shrinkColumns用法的相關(guān)資料,需要的朋友可以參考下2017-03-03
Android實(shí)現(xiàn)使用微信登錄第三方APP的方法
這篇文章主要介紹了Android實(shí)現(xiàn)使用微信登錄第三方APP的方法,結(jié)合實(shí)例形式分析了Android微信登錄APP的操作步驟與具體功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-11-11

