Ich versuche, den Flugmodus in einem Nexus 4 mit Android 4.2.2 einzustellen. Ich weiß, dass es nicht möglich ist, seit AIRPLANE_MODE_ON nach Globale Systemeinstellungen verschoben wurde und es ist einfach eine Leseoption.
Gibt es eine andere Möglichkeit, etwas Ähnliches zu tun, ich meine das Radio auszuschalten? Ich kann Bluetooth, WLAN und Internetverbindung deaktivieren, aber das Telefonanrufnetzwerk ist immer noch aktiv.
Es könnte möglich sein, eine Bibliothek mit dem NDK zu erstellen, um das Netzwerk vollständig zu deaktivieren?
BEARBEITEN : Ich habe versucht mit java.lang.reflect
diese Methode zu machen:
Wie Sie sehen können, ersetze ich die Methode Settings.System.putString(resolver, name, value);
über JELLY_BEAN_MR1
, aber natürlich bekomme ich SecurityException
, weil meine App keine System-App ist. Dies ist die Spur:
Wenn ich <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
verwende, bekomme ich den Fehler Permission is only granted to system apps
. Ich habe die SDK-Quellen (in den Dateien von der Ablaufverfolgung) überprüft, um zu versuchen, einen Flugmodus ohne diese Erlaubnis zu finden, aber ich habe keinen Erfolg bekommen.
Ab 4.2.2 können Sie den Flugmodus nicht mehr aktivieren, da er schreibgeschützt war.
Sie haben zwei Möglichkeiten.
System
-Anwendung. drücke ein APK auf /system/app
und installiere es von dort. Dadurch können Sie den Flugzeugmodus wechseln. Reflection
, um den Android-Systemfunktionsaufruf aufzurufen, der den Flugzeugmodus umschaltet. Sie sollten Code-Beispiele dazu erhalten, wie Sie Reflection verwenden können, um APIs zu erhalten, die dem Entwickler sonst nicht über das SDK zugänglich gemacht werden.
Tags und Links android reflection android-ndk android-4.2-jelly-bean