Per creare un app che è sensibile a tremare evento:
A. In manifesta - registrare un ricevitore di avvio. Si farà in modo che la vostra applicazione è sempre attivato dopo il riavvio del dispositivo:
<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. Creare una classe di eventi scossa ascoltatore:
class ShakeEventListener implements SensorEventListener {
@Override
public void onSensorChanged(SensorEvent event) {
handleShake(event); // see below
}
}
C. Implementazione del ricevitore di avvio - registrare un listener di scuotimento per eventi TYPE_ACCELEROMETER
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. Se viene rilevato Agitare movimento - iniziare la vostra attività principale:
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);
}
}
L'unica cosa che abbiamo lasciato fuori è il "movimento scuotere rilevato" logica.
Here è possibile trovare un'implementazione di base ragionevolmente buona. Usa la funzione onSensorChanged(). Probabilmente avrai bisogno di variare su di esso finché non lo farai bene.
Permessi:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
fonte
2014-07-02 20:44:51
leggere questo: http://tinyurl.com/so-hints – ben75
Grazie mille per i suggerimenti. Ho trovato molte risposte a pezzi che non ho potuto integrare. Quindi avevo bisogno di fare una domanda aperta. – SHD