Android接近传感器问题仅适用于三星设备
避免问题的特定场景:Android接近传感器问题仅适用于三星设备,android,android-sensors,samsung-mobile,proximity,proximitysensor,Android,Android Sensors,Samsung Mobile,Proximity,Proximitysensor,避免问题的特定场景: 三星设备中的活动行为不同,每次检测到变化时,为了接近,只会在三星设备上调用onPause()/onResume() 我正在清除onPause()中的接近传感器,这导致了三星设备特有的行为 希望这能为任何面临这一问题的人节省一些时间。我从onPause()中删除了清除邻近侦听器的调用,现在它在提到的设备上按预期工作 更新: 下面提到的并不是唯一的问题,接近传感器并非始终以这种方式工作。另一个问题是信用证: if(!mWakeLock.ishell())mWakeLock.ac
三星设备中的活动行为不同,每次检测到变化时,为了接近,只会在三星设备上调用
onPause()/onResume()
我正在清除onPause()
中的接近传感器,这导致了三星设备特有的行为
希望这能为任何面临这一问题的人节省一些时间。我从onPause()
中删除了清除邻近侦听器的调用,现在它在提到的设备上按预期工作
更新:
下面提到的并不是唯一的问题,接近传感器并非始终以这种方式工作。另一个问题是信用证:
if(!mWakeLock.ishell())mWakeLock.acquire()代码>
对于上述设备,if()
会随机返回false,因此并不总是调用mWakeLock.acquire()
可能相关信息:
mWakeLock = mPowerManager.newWakeLock(field, getLocalClassName());
在哪里
field = PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK or 32
我的接近传感器代码仅在
1.三星GT-I9082安卓4.2.2(API 17)[duos grand]
2.三星SM-G925I安卓5.1.1(API 22)[s6 edge]
代码:
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
...new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
if (event.values[0] <= 5) { //Sleep
turnOffScreen();
} else { //Wake
turnOnScreen();
}...
// registering listener with SensorManager.SENSOR_DELAY_NORMAL);
三星Duos:与上面的8.0不同,波动值在0.0和5.0之间有所不同
- 有哪些其他方法或排列组合可以成功和准确地应用于解决此问题
- 是因为不同的传感器;GP2A接近传感器和APDS-9930/QPDS-T930接近和灯
我已经花了很长时间在这上面了。徒劳的所以这是三星设备的注册问题,下面是一个页面集合,可以帮助任何人面对这个问题:
使用。这对我来说是有意义的,我的onPause()相关实现也成功地实现了这一点。
来源和解释:
帮助我的是:而不是在onPause()
@凌驾
WindowFocusChanged上的公共无效(布尔hasFocus){
super.onWindowFocusChanged(hasFocus);
如果(!hasFocus){
clearProximityListeners();
}
}
更多参考资料:
从完全不同的角度来看,注销上的Bug…Otto总线。。引述:
如果答案更清楚,请对其进行编辑、更正和改进。。希望能节省一些时间。请看:准确性不是我的问题,要么问题被误解了,要么我不明白你想说什么,你能解释一下吗?我认为,超过1位的值,接近传感器的意义取决于ODM,因此,覆盖/未覆盖时,值会发生变化,这一事实仅仅意味着这是一个实现细节,而不是“不正确”的行为。这就是我认为我遗漏了一些东西的地方。。。即使将其持续覆盖15-20秒,它也会在该持续时间内波动……而其覆盖时间。因此,如果小于或等于5,则可能必须检查另一个条件。同时检查powerManager服务和wakelock示例,但同一设备对于使用加速计/方向传感器检查的本机和whatsapp呼叫具有完美工作的接近wakelock。我一直认为,只有当你把手机放在耳边时,锁上屏幕才有意义,而不是在明亮的阳光下拔罐。
02-10 20:12:36.532: D/SensorManager(3467): Proximity, val = 8.0 [far]
02-10 20:12:36.532: D/SensorManager(29335): Proximity, val = 8.0 [far]
02-10 20:12:36.532: D/DisplayPowerController(3467): [sensor] setProximitySensorEnabled::unregisterListener
02-10 20:12:36.532: D/PowerManagerService(3467): [s] DisplayPowerCallbacks : onProximityNegative()
02-10 20:12:36.562: I/Sensors(3467): Proximity old sensor_state 33554560, new sensor_state : 33554432 en : 0
02-10 20:12:36.632: I/Sensors(3467): Proximity old sensor_state 33554944, new sensor_state : 33555072 en : 1
02-10 20:12:36.642: D/SensorManager(29335): registerListener :: 5, TMD4903 Proximity Sensor, 200000, 0,
02-10 20:12:36.652: D/SensorManager(29335): Proximity, val = 8.0 [far]
02-10 20:12:36.662: I/Sensors(3467): ProximitySensor - 8(cm)
02-10 20:12:36.672: D/SensorManager(29335): Proximity, val = 8.0 [far]
02-10 20:12:41.752: I/Sensors(3467): Proximity old sensor_state 33554560, new sensor_state : 33554432 en : 0
02-10 20:12:41.822: I/Sensors(3467): Proximity old sensor_state 33554432, new sensor_state : 33554560 en : 1
02-10 20:12:41.842: D/SensorManager(29335): registerListener :: 5, TMD4903 Proximity Sensor, 200000, 0,
02-10 20:12:41.842: D/SensorManager(29335): Proximity, val = 8.0 [far]
02-10 20:12:41.872: I/Sensors(3467): ProximitySensor - 8(cm)
02-10 20:12:41.872: D/SensorManager(29335): Proximity, val = 8.0 [far]
02-10 20:12:50.482: I/Sensors(3467): ProximitySensor - 0(cm)
02-10 20:12:50.482: D/SensorManager(29335): Proximity, val = 0.0 [close]
02-10 20:12:50.482: D/DisplayPowerController(3467): [sensor] setProximitySensorEnabled::registerListener
02-10 20:12:50.482: D/SensorManager(3467): registerListener :: 5, TMD4903 Proximity Sensor, 200000, 0,
02-10 20:12:50.482: D/SensorManager(3467): Proximity, val = 0.0 [close]
02-10 20:12:50.482: D/PowerManagerService(3467): [s] DisplayPowerCallbacks : onProximityPositive()
02-10 20:12:50.482: D/PowerManagerService(3467): [s] DisplayPowerCallbacks : onProximityPositive()