Wie bekannt ist, können unter Android 4.2 nur Systemanwendungen den Flugzeugmodus umschalten. Aber ich denke, dass es für gerootete Geräte verfügbar sein muss. Und ich möchte es in meiner Anwendung für gerootete Geräte mit Build.VERSION.SDK_INT> = 17. Wie wird der Flugmodus bei gerooteten Geräten mit Android 4.2 umgeschaltet?Wie wird der Flugmodus unter Android 4.2 und höher mit root aktiviert?
Antwort
Es gibt eine neue "Einstellungen" Binär in Android 4.2 Sie können es auch ohne su verwenden, dann benötigt Ihre App die erforderliche Berechtigung, um diese im Manifest Ihrer App deklarierte Einstellung (WRITE_SECURE_SETTINGS für den Flugmodus in 4.2) zu ändern - Dies wird nur Apps gewährt, die auf der Systempartition installiert sind.
aktivieren
su
settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
deaktivieren
su
settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
Für andere Android-Versionen und andere Einstellungen (Flugmodus kann vor 4.2 ohne root aktiviert werden) Sie können SQL injiziert in settings.db
verwendensu
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
insert into global values(null, 'airplane_mode_on', 1);
"global" durch "system" oder "secure" und "airplane_mode_on" durch ersetzen der Schlüssel Ihres gewünschten Tabelleneintrags. Für einige Einstellungen müssen Sie später bestimmte Broadcasts senden, siehe Beispiel oben für den Flugmodus.
Um Ihre settings.db laufen diese in einem Terminal-App zu erkunden:
su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
.tables
select * from global
select * from secure
select * from system
Ich bin nicht 100% klar auf diese ... Bedeutet dies, dass es keine Möglichkeit gibt, den Flugzeugmodus auf> = 4.2 über eine API legal umzuschalten, ohne zu rooten? – Marius
Ja, das sagen die Originalfragen auch. (Ihre App kann keine System-App ohne root sein oder Sie selbst entwickeln/kompilieren). – user1806772
Verwandte (wenn auch nicht unbedingt ein Duplikat): http://stackoverflow.com/questions/13766909/android-how-to- enable-disable-flight-mode-on-android-4-2? lq = 1 –
Ja, diese Frage ist nicht doppelt. – BArtWell