Android 手机距离感知器 代码实现
完美实现 感应距离让手机自动息屏 防止用户误触界面
private void initSensor() {mManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);// 获取系统服务POWER_SERVICE,返回一个PowerManager对象localPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);// 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的TaglocalWakeLock = this.localPowerManager.newWakeLock(32, "MyPower"); // 第一个参数为电源锁级别,第二个是日志taglocalWakeLock.setReferenceCounted(false);}
private void registerSensorListener() {mManager.registerListener(this, mManager.getDefaultSensor(Sensor.TYPE_PROXIMITY), // 距离感应器SensorManager.SENSOR_DELAY_NORMAL); // 注册传感器,第一个参数为距离监听器,第二个是传感器类型,第三个是延迟类型}private void unregisterSensorListener() {if (mManager != null) {if (localWakeLock.isHeld()) {localWakeLock.release();// 释放电源锁,如果不释放finish这个acitivity后仍然会有自动锁屏的效果,不信可以试一试}mManager.unregisterListener(this); // 注销传感器监听}}
@Overridepublic void onSensorChanged(SensorEvent event) {float[] its = event.values;// Log.d(TAG,"its array:"+its+"sensor type :"+event.sensor.getType()+" proximity type:"+Sensor.TYPE_PROXIMITY);if (its != null && event.sensor.getType() == Sensor.TYPE_PROXIMITY) {System.out.println("its[0]:" + its[0]);// 经过测试,当手贴近距离感应器的时候its[0]返回值为0.0,当手离开时返回1.0if (its[0] == 0.0) { // 贴近手机LogUtil.e(TAG, "hands up in calling activity");if (localWakeLock.isHeld()) {return;} else {localWakeLock.acquire();// 申请设备电源锁}} else { // 远离手机LogUtil.e(TAG, "hands moved in calling activity");if (localWakeLock.isHeld()) {return;} else {localWakeLock.setReferenceCounted(false);localWakeLock.release(); // 释放设备电源锁}}}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}
public class DialogActivity extends Activity implements SensorEventListener{@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);LogUtil.e(TAG, "onCreate");initSensor();}@Overrideprotected void onResume() {LogUtil.e(TAG, "onResume");super.onResume();registerSensorListener();}@Overrideprotected void onDestroy() {LogUtil.e(TAG, "onDestroy");super.onDestroy();unregisterSensorListener();}
Android 手机距离感知器 代码实现相关推荐
- android备份手机号码,Android手机通讯录备份还原代码
最近想写段Android程序玩玩.开发环境 Eclipse ,Android 2.2 开发环境搭建 1.先安装jdk 2.下载安装eclipse 3.下载安装android sdk 4.安装eclip ...
- 值得推荐的 5 大 Android 手机密码解锁器
大多数 Android 用户使用唯一密码来保护他们的手机和重要数据.因此,忘记密码并被锁定在手机之外可能会令人沮丧.在这种情况下,使用安卓手机密码解锁器来解决问题是一个明智的选择.本文将介绍2023 ...
- android 歌词同步代码,android手机音乐播放器实现歌词同步
最近在做一款android手机上的音乐播放器,学习到了很多东西,像是Fragment,ActionBar的使用等等,这里就先介绍一下歌词同步的实现问题. 歌词同步的实现思路很简单:获取歌词文件LRC中 ...
- 旧android手机当播放器,android手机立即变无线移动终端播放器 Qloud media 详细教程...
Ubuntu终端播放器-mocp 作为Linux企业应用管理和维护,常需要putty远程连接维护服务器.Python开发. private void play(long position)// ...
- android 锁机代码‘’,android手机锁机txt代码
所需权限: 复制代码代码如下: 复制代码代码如下: //锁屏.唤醒相关 private KeyguardManager km; private KeyguardLock kl; private Pow ...
- android建立电话拨号器代码,Android编写电话拨号器
一.实现步骤 1.需要创建拨号意图 Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData ...
- android手机应用字体颜色代码,安卓手机字体颜色修改教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 先说好哦 我只是搬运而已 没这么强大的技术 反编译framework-res.apk 得到framework-res文件夹! 修改里面的文件, 找到(如何 ...
- android手机通讯录备份还原代码,android手机通讯录备份还原代码
最近想写段android程序玩玩. 开发环境 eclipse ,android2.2 开发环境搭建 1.先安装jdk 2.下载安装eclipse 3.下载安装android sdk 4.安装eclip ...
- android手机通讯录备份还原代码,安卓手机误删联系人恢复及备份技巧总汇
原标题:安卓手机误删联系人恢复及备份技巧总汇 现在很多手机都不再提供将联系人存入SIM卡中的功能了,所以如果你还习惯性的将联系人储存在手机内存当中,一旦手机丢失或者手机数据遗失,那么少则几十动辄几百的 ...
最新文章
- java中数组的复制
- Java学习总结:23
- c语言逐步搜索法求有根区间,[C语言第五章.ppt
- 让win7系统高速运行的优化技巧
- luogu4074-[WC2013]糖果公园
- hdu5062 简单题
- MATLAB 最大对角矩阵
- 一个故事讲清楚BIO NIO 异步
- 在TOMCAT中部署项目的几种方法
- Asp.Net iframe Cookie 域 的问题!
- 关于js对象引用的小例子
- 如何优雅地在云上“摆摊” 直播带货,这些技术很重要
- 【PMP学习笔记】:二、项目运行环境
- C语言课后习题(8)
- ROS入门-12.服务端Server的编程实现
- java web 中的乱码
- win10配置hadoop开发环境
- java 播放h264_一个可以解码并实时播放H264的播放器
- 连接方法:网线水晶头接法
- 【翻译】ASML Automatic Streaming Machine Learning