国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android之距離傳感器控制手機(jī)屏幕熄滅的方法

2020-02-21 17:24:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

距離傳感器可以使用各種元素來(lái)檢測(cè)對(duì)象的物理變化,也能通過(guò)變化進(jìn)行轉(zhuǎn)化,可以測(cè)量傳感器到物體的距離,今天就讓武林技術(shù)頻道小編為你介紹Android之距離傳感器控制手機(jī)屏幕熄滅的方法吧!

這個(gè)功能可以使用距離傳感器來(lái)實(shí)現(xiàn)

P-Sensor距離感應(yīng)器,可以感應(yīng)手機(jī)和人體距離。具體使用用途是在通話(huà)過(guò)程中打開(kāi)P-Sensor,那么當(dāng)手機(jī)屏幕貼近用戶(hù)臉部時(shí),就會(huì)自動(dòng)感應(yīng)出手機(jī)和人體距離是多少。當(dāng)小于某一個(gè)值時(shí),就會(huì)熄滅屏幕,不再接收用戶(hù)觸摸屏幕事件,從而有效的防止通話(huà)過(guò)程中誤觸摸事件的出現(xiàn)。

具體實(shí)現(xiàn)代碼如下:

public class MainActivity extends Activity implements SensorEventListener{ public static final String TAG = "SensorTest"; private SensorManager sensorManager; private TextView tv; private PowerManager localPowerManager = null;// 電源管理對(duì)象 private WakeLock localWakeLock = null;// 電源鎖 @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);  tv = (TextView) findViewById(R.id.tv);  localPowerManager = (PowerManager) getSystemService(POWER_SERVICE);  // 獲取PowerManager.WakeLock對(duì)象,后面的參數(shù)|表示同時(shí)傳入兩個(gè)值,最后的是LogCat里用的Tag  localWakeLock = this.localPowerManager.newWakeLock(32, "hahaha");// 第一個(gè)參數(shù)為電源鎖級(jí)別,第二個(gè)是日志tag } @Override protected void onResume() {  sensorManager.registerListener(this,    sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY),    SensorManager.SENSOR_DELAY_UI);  super.onResume(); } @Override protected void onPause() {  sensorManager.unregisterListener(this);  super.onPause(); } @Override public void onSensorChanged(SensorEvent event) {  // TODO Auto-generated method stub  float[] values = event.values;  switch (event.sensor.getType()) {  case Sensor.TYPE_PROXIMITY:   tv.setText(values[0] + "");   if (values[0] == 0.0) {// 貼近手機(jī)    System.out.println("hands up");    Log.d(TAG, "hands up in calling activity");    if (localWakeLock.isHeld()) {     return;    } else {     localWakeLock.acquire();// 申請(qǐng)?jiān)O(shè)備電源鎖    }   } else {// 遠(yuǎn)離手機(jī)    System.out.println("hands moved");    Log.d(TAG, "hands moved in calling activity");    if (localWakeLock.isHeld()) {     return;    } else {     localWakeLock.setReferenceCounted(false);     localWakeLock.release(); // 釋放設(shè)備電源鎖    }    break;   }  } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) {  // TODO Auto-generated method stub }}

仔細(xì)想想,是不是屏幕熄滅的時(shí)候需要手機(jī)自帶的電源~

所以需要加上權(quán)限:

<uses-permission android:name="android.permission.DEVICE_POWER"/><uses-permission android:name="android.permission.WAKE_LOCK"/>

效果圖我就不貼了,需要真機(jī)測(cè)試

另外,關(guān)于Android權(quán)限控制可點(diǎn)擊此處查看詳細(xì)描述

綜上所述,Android之距離傳感器控制手機(jī)屏幕熄滅的方法已經(jīng)詳細(xì)介紹了,學(xué)習(xí)知識(shí)需要我們不懈努力和堅(jiān)持,這在日常生活中是可以體現(xiàn)的。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 克什克腾旗| 宁南县| 德钦县| 塔河县| 无锡市| 陵川县| 皮山县| 通化市| 姚安县| 六枝特区| 龙游县| 洛阳市| 获嘉县| 渝北区| 廉江市| 岳阳县| 五寨县| 北流市| 岳阳市| 炉霍县| 抚顺市| 交城县| 清新县| 石泉县| 长治市| 洛阳市| 英德市| 曲沃县| 济宁市| 西安市| 济南市| 翁源县| 长寿区| 新巴尔虎右旗| 家居| 漯河市| 天峨县| 建始县| 红河县| 都兰县| 平凉市|