Flugzeugmodus in Jelly Bean

8

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:

%Vor%

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:

%Vor%

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.

    
Freefri 22.04.2013, 23:11
quelle

1 Antwort

5

Ab 4.2.2 können Sie den Flugmodus nicht mehr aktivieren, da er schreibgeschützt war.

Sie haben zwei Möglichkeiten.

  1. Machen Sie Ihre Bewerbung zu einer System -Anwendung. drücke ein APK auf /system/app und installiere es von dort. Dadurch können Sie den Flugzeugmodus wechseln.
  2. Verwenden Sie 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.

    
Royston Pinto 23.04.2013, 01:29
quelle