eine App zu erstellen, die Veranstaltung schütteln empfindlich ist:
A. In manifestieren - ein Boot-Empfänger registrieren. Es wird sicherstellen, dass Ihre App wird immer nach Neustart des Gerätes aktiviert werden:
<receiver android:name=".OnBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
B. erstellen Shake-Ereignis-Listener-Klasse:
class ShakeEventListener implements SensorEventListener {
@Override
public void onSensorChanged(SensorEvent event) {
handleShake(event); // see below
}
}
C. Boot-Empfängerimplementierung - Registrieren eines Shake-Listeners für TYPE_ACCELEROMETER-Ereignisse
public class OnBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
SensorManager sManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
sensor = sManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sManager.registerListener(new ShakeEventListener(), sensor, SensorManager.SENSOR_DELAY_NORMAL); // or other delay
}
}
D. Wenn schütteln Bewegung erkannt wird - Ihre Haupttätigkeit beginnen:
void handleShake(event) {
if (shake movement detected) {
// start main activity
Intent intent = new Intent(getBaseContext(), myActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
Das einzige, was wir ausgelassen die Logik "shake Bewegung erkannt".
Here können Sie eine einigermaßen gute Basis-Implementierung finden. Verwenden Sie die Funktion onSensorChanged(). Sie müssen wahrscheinlich darauf variieren, bis Sie es richtig machen.
Berechtigungen:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
dies lesen: http://tinyurl.com/so-hints – ben75
Vielen Dank für Anregungen. Ich fand viele Antworten in Stücken, die ich nicht integrieren konnte. Daher musste ich eine offene Frage stellen. – SHD