繁体   English   中英

无法在android中获取接近传感器的值

[英]Not able to get proximity sensor's values in android

有人可以举例说明如何使用接近传感器吗? 我尝试以与其他传感器相同的方式使用它,但它不起作用。

这是我一直在使用的代码片段:

 final SensorManager mSensorManager;
 final Sensor mproximity;

mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mproximity =  mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

mSensorManager.registerListener(new SensorListener(){

public void onAccuracyChanged(int arg0, int arg1) {
   // TODO Auto-generated method stub
   Toast.makeText(test.this,"proximity sensor accu ", Toast.LENGTH_SHORT).show();
}

public void onSensorChanged(int arg0, float[] arg1) {
   // TODO Auto-generated method stub
   Toast.makeText(test.this,"proximity sensor ", Toast.LENGTH_SHORT).show();
}

}, Sensor.TYPE_PROXIMITY, 1);

请告诉我哪里出错了。

该方法registerListener(SensorListener, int, int)已过时,使用registerListener(SensorEventListener, Sensor, int)代替:

mSensorManager.registerListener(proximityListener,
        mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY),
        SensorManager.SENSOR_DELAY_UI);

此外,您应该保存对Sensor(Event)Listener的引用,以便能够取消注册它。

Gubbel提出了一个有效的观点。 请使用最新的API。

另请注意,接近传感器的实现方式与之不同
其他传感器。 而其他传感器可以“轮询”了
接近传感器是基于中断的。

因此,只有在接近状态时才会获得onSensorChanged事件
过渡发生(即近远或远近)。

通常,接近传感器使用光传感器硬件实现。
因此,您可以启动应用程序并覆盖/揭开顶部的光传感器
你的设备。 这样做会触发接近传感器转换
然后你肯定会在你的应用程序中获取数据(0/1或远/近)。

有关Android接近传感器的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM