Il rilascio del sensore di prossimità Android solo nei dispositivi Samsung

Scenario specifico per evitare problemi:
Il comportmento per le attività nei dispositivi Samsung è stato diverso in modo che each volta che è stato rilevato un cambiamento, per la prossimità, è risultato una chiamata a onPause()/onResume() SOLO sui dispositivi SAMSUNG.

Stavo cancellando i sensori di prossimità in onPause() che hanno determinato un comportmento unico per i dispositivi Samsung.

  • Quale è l'approccio migliore per submit grandi sequenze UDP in sequenza
  • android.graphics.drawable.ColorDrawable non può essere lanciato in android.support.v7.widget.RoundRectDrawableWithShadow
  • Come rivelare che ho ricevuto un'email / gmail sul mio dispositivo Android?
  • Voglio un cerchio di progresso invece di dialogo di avanzamento
  • Casella di controllo tinting su pre v21
  • Come posso specificare per i sourceSet di buildType flavor?
  • Spero che questo risparmia un po 'di tempo per chiunque sia di fronte a questo. Ho rimosso la chiamata di chiudere gli ascoltatori di prossimità da onPause() e ora funziona come previsto sui dispositivi di cui sopra.

    AGGIORNARE:

    Quello che viene menzionato di seguito non è l'unico problema, il sensore di prossimità non si comport in modo consistente in quel modo. L'altro problema è un loc:

    if (!mWakeLock.isHeld()) mWakeLock.acquire();

    Casualmente, if() restituisce false per i dispositivi di cui mWakeLock.acquire() non viene sempre chiamato.

    eventualmente informazioni rilevanti:

     mWakeLock = mPowerManager.newWakeLock(field, getLocalClassName()); 

    where

     field = PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK or 32 

    Il mio codice del sensore di prossimità funziona non correttamente solo
    1. Samsung GT-I9082 Android 4.2.2 (API 17) [duos grand]
    2. Samsung SM-G925I Android 5.1.1 (API 22) [bordo s6]

    il codice:

      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); 

    il problema: I valori registrati restituiti dal sensore di prossimità su entrambi i dispositivi fluttuano , anche mentre ci mettiamo una mano sui telefoni costantemente per alcuni secondi; 10-15 senza spostarlo.
    Piace:
    Samsung 6 bordo-

     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: i valori di fluttuazione differiscono in 0.0 e 5.0 a differenza di 8.0 sopra

    • Quali sono le altre combinazioni di modi o permutazioni che possono essere applicati con successo e con precisione per risolvere questo problema?

    • È a causa di diversi sensori; Sensore GP2A di prossimità e APDS-9930 / QPDS-T930 Proximity & Light?

    hanno già trascorso parecchio tempo su di esso … in vano

  • Android WebView fa clic su Apri in WebView non un browser predefinito
  • Aggiunta di supporto Samsung multi-window per l'applicazione Android
  • Perché usare Handler?
  • Android: colore di background quando viene premuto il menu
  • Richiamata di punti blu di mappe V2 myLocation
  • Personalizzazione della serratura dello schermo per Android
  • One Solution collect form web for “Il rilascio del sensore di prossimità Android solo nei dispositivi Samsung”

    Quindi si scopre che si tratta di un problema registrato con i dispositivi Samsung, ecco una raccolta di pagine che potrebbero aiutare chiunque di fronte a questo:

    1. Usare onWindowFocusChanged . Questo mi ha reso conto e la mia implementazione relativa a onPause () ha avuto successo nel seguire lo stesso.
      Fonte e spiegazione: attività-onpause-to-handle-focus
      Che cosa mi ha aiutato: invece di onPause() ;

      @Override pubblica void suWindowFocusChanged (boolean hasFocus) {super.onWindowFocusChanged (hasFocus); se (! hasFocus) {clearProximityListeners (); }}

    2. Numero 74464: Activity # onPause chiamato senza Activity # onResume o può Context # registerReceiver fallito

    3. Ulteriori riferimenti:
      Da un aspetto piuttosto diverso, Bug su unregister … Otto bus .. quote: Per noi, questo appare solo sui dispositivi Samsung. E dopo una rapida ricerca, …

    Si prega di modificare, correggere, migliorare la risposta se c'è più chiarezza a esso .. spero risparmiare un po 'di tempo.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.