Özgül senaryo: Samsung cihazlarında Aktivitesi
Davranışı yakınlık için tespit edilen bir değişiklik, her zaman yoktu şekilde farklıydı, o bir çağrı sonuçlandı SADECE SAMSUNG cihazlarda onPause()/onResume()
.Android yakınlık sensörü sorunu
Yakınlık sensörlerini onPause()
numaralı telefondan temizledim, bu da Samsung cihazlarına özgü bir davranışla sonuçlandı. Umarım bu durumla karşılaşan herkes için biraz zaman kazanırsınız. Ben onPause()
dan yakınlık dinleyicileri temizleme çağrı kaldırıldı ve şimdi belirtilen cihazlarda beklendiği gibi çalışır.
GÜNCELLEME: Ne aşağıda belirtilen tek sorun değil
, yakınlık sensörü sürekli o şekilde davranmaz.
if (!mWakeLock.isHeld()) mWakeLock.acquire();
rasgele, söz konusu cihazlar için yanlış if()
döner dolayısıyla mWakeLock.acquire()
her zaman adı değildir: diğer bir sorun, bir L-o-c.
olasılıkla ilgili bilgi:
mWakeLock = mPowerManager.newWakeLock(field, getLocalClassName());
field = PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK or 32
Benim yakınlık sensörü kodu yanlış sadece üzerinde
1. Samsung GT-I9082 Android 4.2.2 (API işleri 17) [duos grand]
2. Samsung SM-G925I Android 5.1.1 (API) 22) [s6 kenar]
kodu:
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);
sorun: Kayıtlı değerler, telefonlar üzerinde elini bile, dalgalanma her iki cihaz yakınlık sensörü tarafından döndürülen sürekli birkaç saniye için; 10-15 hareket etmeden.
gibi:
Samsung 6 kenarla
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()
Samsung Duos: dalgalanma değerlerini başka yollar olabilmektedir ya da permütasyon-kombinasyonları bulunmaktadır ne
üzerinde 8.0 aksine 5.0, 0.0 farklıdır ve Bu sorunu çözmek için başarıyla ve doğru uygulandı mı?
Farklı sensörler yüzünden mi? GP2A Yakınlık Sensörü ve APDS-9930/QPDS-T930 Yakınlık & Işık?
zaten oldukça uzun bir zaman geçirdim
Bakın: http://stackoverflow.com/questions/33405259/why-sensors-value-is-different-in-different-android-devices/33405362#33405362 –
doğruluk benim sorunum değil, ya sorun yanlış anlaşılmış ya da ne söylemek istediğinizi anlamadım, – user2450263
detaylandırır mısınız? 1 bit değerinin ötesinde yakınlık sensörünün anlamının ODM'ye kadar olduğunu düşünüyorum, bu yüzden değerin örtülü/açıkken değeri değiştiği anlamına gelir. Onun bir uygulama detayı ve 'yanlış' davranış değil. –