【发布时间】:2019-04-04 08:31:35
【问题描述】:
我想在三星较新型号(s10 或 s10+)上测试接近传感器,我使用旧的传统方法来注册接近传感器的侦听器,它适用于除这 2 个设备之外的所有设备。我在互联网上搜索并得知 S10 在显示屏下方有接近传感器(在通话期间闪烁的像素会亮起等)。我还使用了许多 3rd 方传感器测试应用程序,但它们都不适用于 S10。有谁知道三星改变了什么?我们如何以编程方式访问 S10 接近传感器? 我试过下面的代码,但它总是烤得很远。
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
if (event.values[0] >= -SENSOR_SENSITIVITY && event.values[0] <= SENSOR_SENSITIVITY) {
//near
Toast.makeText(getApplicationContext(), "near", Toast.LENGTH_SHORT).show();
} else {
//far
Toast.makeText(getApplicationContext(), "far", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
Toast.makeText(getApplicationContext(), "accuracy changed", Toast.LENGTH_SHORT).show();
}
【问题讨论】:
-
显然接近传感器在很多 s10/s10+ 设备上似乎有些损坏 oO
-
是的,我想是的,因为当我运行上面的代码时,它只是给出了一个常数值 5.0,然后它停止了,不知道为什么。当我检查传感器侦听器未注册但不知道为什么它在给出 1 个值后停止时,为什么 sensorChanged 回调没有重复给出响应
-
我得到了同样的东西。 onSensorChanged 在注册后立即被调用一次,但再也不会调用了
-
如果有人得到解决方案,也请在这里发帖
-
我猜它可能使用了一些自定义传感器。尝试检查 CPU Z,如果他们可以做到,那么应该可以做到