2010-11-23 3 views
3

Lorsque vous parlez au téléphone sous Android, le capteur de lumière fonctionne. Si vous couvrez le coin supérieur gauche de l'écran, l'écran devient noir et vous ne voyez rien.Désactiver le capteur de lumière pendant l'appel - Android

Je voudrais annuler cette fonctionnalité et j'ai essayé de travailler avec Android Sensors et le Light Sensor mais cela ne fonctionne pas.

Ceci est mon code:

senMgrLight=(SensorManager)getSystemService(Context.SENSOR_SERVICE); 
    senMgrLight.registerListener(onSensorListener, 
      senMgrLight.getDefaultSensor(Sensor.TYPE_LIGHT), 
       SensorManager.SENSOR_DELAY_FASTEST); 

Merci.

Répondre

2

Le capteur vous devez travailler avec le capteur de proximité, essayez ceci, cela vous permettra de savoir si le capteur est caché ou non (et il fonctionne pendant que votre sur un appel)

SensorManager sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE); 
     sm.registerListener(new SensorEventListener() { 

      @Override 
      public void onSensorChanged(SensorEvent event) { 
       Log.i(TAG,"sensor: " + event.sensor.getName() + ", values: " + Arrays.toString(event.values)); 

      } 

      @Override 
      public void onAccuracyChanged(Sensor sensor, int accuracy) { 
       Log.i(TAG,"accuracy change: " + sensor + ", accuracy: " + accuracy); 

      } 
     }, sm.getDefaultSensor(Sensor.TYPE_PROXIMITY),SensorManager.SENSOR_DELAY_FASTEST); 
1

Je voudrais utiliser la classe Settings.System pour lire le SCREEN_BRIGHTNESS et le SCREEN_BRIGHTNESS_MODE via getInt() avant qu'un appel ne soit fait. Ensuite, je voudrais définir de nouvelles valeurs via setInt(), à savoir 255 pour la luminosité et SCREEN_BRIGHTNESS_MODE_MANUAL pour le mode - qui devrait donner une luminosité constante au montant maximum. Une fois l'appel raccroché, vous pouvez restaurer les anciennes valeurs que vous avez stockées avant de modifier les valeurs via setInt() afin que l'utilisateur récupère ses paramètres initiaux. :-)

N'oubliez pas que le mode n'est disponible que pour Android 2.2 et supérieur (niveau API 8), vous devrez donc utiliser la réflexion si vous souhaitez également cibler les anciennes versions d'Android. Et bien sûr, vous aurez certainement besoin d'autorisations pour écrire les paramètres du système.

+0

Non seulement l'écran est sombre, mais les boutons ne fonctionnent plus. C'est la «caractéristique» du capteur de proximité qui permet de désactiver les événements tactiles accidentels lors d'un appel. Mieux si nous "attaquons" la cause ici plutôt que de rafistoler les résultats. hein? – TheCodeArtist

1

hors écran est contrôlé par Proxy capteur, non Capteur de lumière. vous pouvez supprimer le registre du capteur proxy dans l'application Téléphone

Questions connexes