android - pared - luz de sensor de movimiento
¿Cómo detectaré el sensor de movimiento en el receptor de transmisión? (2)
No puedes y no debes hacer eso, porque cuando la pantalla se apaga, el sensor se apaga automáticamente, esto lo hace el sistema en la mayoría de los dispositivos, algunos dispositivos admiten la escucha de sensores después de que la pantalla se apaga como nexus 4. Pero puedes cree los receptores que escucharán la pantalla apagada y la pantalla encendida.
la pantalla de la clase pública extiende BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
screenOn();
}
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
screenOff();
}
}
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
intentFilter.addAction(Intent.ACTION_SCREEN_ON);
mReceiver = new Screen();
registerReceiver(mReceiver, intentFilter);
Había escrito un receptor para detectar que el movimiento del dispositivo ha cambiado o no como este en Manifest.xml
<receiver android:name="com.hanuman.sensor.receiver.SensorReceiver" >
<intent-filter
android:enabled="true"
android:exported="false" >
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
y el código del método onReceive () del receptor interno es:
String action = intent.getAction();
if (action.equals(Intent.ACTION_USER_PRESENT)) {
System.out.println("User is present");
Intent s = new Intent(context, MainActivity.class);
s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(s);
} else {
System.out.println("User is not present");
}
finalmente, mi pregunta es si no está detectando el sensor cuando está en movimiento, está detectando cuando mi dispositivo está desbloqueado y luego está llamando a mi actividad principal , pero quiero detectar cuándo se cambia el movimiento de mi dispositivo y luego quiero detectar en el receptor. ¿Cómo puedo hacer eso?.
Obtener objeto de SensorManager como abajo
SensorManager sensorMan = (SensorManager)getSystemService(SENSOR_SERVICE);
Sensor sensor = sensorMan.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
Registrar el oyente para escuchar los cambios en el sensor de movimiento.
sensorMan.registerListener(context, sensor,
SensorManager.SENSOR_DELAY_UI);
Luego invalide el método onSensorChanged () para detectar cambios-
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
//do some stuff
}
//do some other code for other Sensor type
}