Android判断手机是否在口袋中,距离传感器
通常手机自带的距离传感器只能检测到几厘米的范围,一般用于判断手机在不在口袋中
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.Log;public class ProximitySensor implements SensorEventListener {private static final String TAG = "ProximitySensor";private static ProximitySensor instance;private SensorManager mSensorManager;private float distance = -1;private boolean mHasStarted = false;private ProximitySensor() {}public static ProximitySensor getInstance() {if (instance == null) {instance = new ProximitySensor();}return instance;}/*** 启动距离传感器*/public static void start(Context context) {ProximitySensor.getInstance().registerListener(context);}/*** 停止距离传感器*/public static void stop() {ProximitySensor.getInstance().unregisterListener();}/*** 获取手机距离(单位厘米)*/public static float getDistance() {return ProximitySensor.getInstance().getValue();}// ------------------------------------------------------------------------------/*** Use this method to start listening of the sensor*/private void registerListener(Context context) {if (mHasStarted) {return;}mHasStarted = true;mSensorManager = (SensorManager) context.getApplicationContext().getSystemService(Context.SENSOR_SERVICE);Sensor proximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); // 获取距离传感器if (proximitySensor != null) { // 距离传感器存在时才执行mSensorManager.registerListener(this, proximitySensor, SensorManager.SENSOR_DELAY_NORMAL); // 注册事件监听}}/*** Use this method to stop listening of the sensor*/private void unregisterListener() {if (!mHasStarted || mSensorManager == null) {return;}mHasStarted = false;mSensorManager.unregisterListener(this);}private float getValue() {if (!mHasStarted) {Log.w(TAG, "proximity sensor has not start!");}return distance;}@Overridepublic void onSensorChanged(SensorEvent event) {if (event != null && event.sensor.getType() == Sensor.TYPE_PROXIMITY) {// values[0]: Proximity sensor distance measured in centimetersdistance = event.values[0];Log.v(TAG, "proximity sensor distance: " + distance);}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}}
Android判断手机是否在口袋中,距离传感器相关推荐
- android 判断手机计步_一种在Android手机上实现计步器的方法
一种在Android手机上实现计步器的方法 [技术领域] [0001] 本发明设及一种在Amlroid手机上实现计步器的方法,特别设及对手机加速度传 感器数据的采集.处理及应用技术,属于传感器应用领域 ...
- android 判断手机为小米
之前,自己写了获取相册图片的代码,在自己手机上测试没有问题,不过小米手机却出现问题.在网上搜索资料,发现小米手机与其他德 处理不同.所以今天写一下判断手机系统的内容.其实很简单. public sta ...
- android+判断小米手机,android 判断手机为小米
释放双眼,带上耳机,听听看~! 之前,自己写了获取相册图片的代码,在自己手机上测试没有问题,不过小米手机却出现问题.在网上搜索资料,发现小米手机与其他德 处理不同.所以今天写一下判断手机系统的内容.其 ...
- RomUtil【Android判断手机ROM,用于判断手机机型】
参考资料 Android判断手机ROM 正文 有时候需要判断手机系统的ROM,检测ROM是MIUI.EMUI还是Flyme,可以使用getprop命令,去系统build.prop文件查找是否有对应属性 ...
- android 判断miui版本,Android判断手机是否是小米MIUI系统的方法
易采站长站为您分析Android判断手机是否是小米MIUI系统的方法的相关资料,需要的朋友可以参考下 废话不多说了,直接给大家贴代码了: 具体代码如下所示: public class MIUIUtil ...
- android判断软件是否已root权限,Android应用开发Android 判断手机是否有root权限方法...
本文将带你了解Android应用开发Android 判断手机是否有root权限方法,希望本文对大家学Android有所帮助. root权限是安卓最高的操作权限,俗称superuser,简称su,一般来 ...
- Android 判断手机是32位CPU还是64位CPU android.os.Build类字段含义
手机cpu分32位与64位,下面介绍如何在所有android版本上判断手机cpu位数是32位还是64位. 1 Android 判断手机是32位CPU还是64位CPU Android从API level ...
- android 判断手机是否是国内的手机的方法
转载:android 判断手机是否是国内的手机的方法(getSimCountryIso和getSimOperator) http://blog.csdn.net/mingli198611/articl ...
- android 判断手机是否有物理menu键
android 判断手机是否有物理menu键 ViewConfiguration.get(getContext()).hasPermanentMenuKey();
- Android判断手机ROM
该方式并不能使用,已经废弃 本篇文章是转自以下链接: https://www.jianshu.com/p/ba9347a5a05a 附加Android build.prop简介: https://ww ...
最新文章
- Git相关二三事(git reflog 和彩色branch)【转】
- Core Data 编程指南
- iphone换机数据迁移_苹果手机换华为、小米怎么同步数据?来了!
- hiti打印机android驱动,HiTi 打印机 驱动程序下载——更新 HiTi 软件
- Golang 特性简介
- 视频PPT互动问答丨数据库技术前沿的创新与实践专题
- Android保存用户名和密码
- 浅谈CIVIL 3D
- js中apply、call和bind的区别
- 【速达软件】【速达5000】需求采购订单数量不能大于(请购数量-已订数量)
- 使用prometheus+grafana监控k8s集群
- 【高数】如何由解倒求微分方程?及微分方程的阶数、任意常数、特征根的关系
- 联邦学习:加密算法Paillier,Affine,IterativeAffine
- Couldn't connect to host, port: localhost, 25; timeout -1;
- 微信小程序,画布中,根据需要展示的图片比例,获取能截取原图中的最大图片尺寸,并且不变形展示
- 【那些年做过的设计 · 纪念贴】UI设计中移动端和PC端之间具体有什么区别
- Gillette!Gillette!
- 让Linux支持手机,让linux支持qq手机音乐播放
- OSChina 周六乱弹 ——抗议破坏教学道具,致其严重变形!
- TRS复合矩阵的拆解