2012-12-07 16 views

Odpowiedz

22

nie jest to już możliwe, z wyjątkiem przez aplikacje, które są podpisane przez klucz oprogramowania podpisującego lub zainstalowanych na partycji systemowej (zazwyczaj przez zrootowany użytkownik urządzenia).

+2

NAPRAWDĘ? Czemu? Czy czytasz coś o tym? Dzięki ... – Meroelyth

+2

http://commonsware.com/blog/2012/11/20/miscellaneous-android-4p2-regressions.html – CommonsWare

10

Nie można, jak napisano w Official Android 4.2 API Documentation

Some device settings defined by Settings.System are now read-only. If your app attempts to write changes to settings defined in Settings.System that have moved to Settings.Global , the write operation will silently fail when running on Android 4.2 and higher. Even if your value for android:targetSdkVersion and android:minSdkVersion is lower than 17, your app is not able to modify the settings that have moved to Settings.Global when running on Android 4.2 and higher.

Jednakże, jeśli jesteś OS Developer, można napisać go po ustawieniu tych uprawnień

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 

Następnie do zapisu i odczytu ,

// To Write 
Settings.Global.putString(getContentResolver(), "airplane_mode_on", "1"); 

// To Read 
String result = Settings.Global.getString(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON); 
Toast.makeText(this, "result:"+result, Toast.LENGTH_SHORT).show(); 
+2

Ustawienia.Global jest tylko do odczytu. – Tommie

+0

Hmmmmm, ale ta metoda wystarczy dodać w systemie Android 4.2 –

+0

Och, tak. Nie może. Może tylko wtedy, gdy tylko wydasz pozwolenie android.permission.WRITE_SECURE_SETTINGS To znaczy, że musisz os dev, a ja tak nie zauważyłem. –

33
Nie

istnieje proste obejście na zakorzenione urządzeń.

włączenia trybu Samolot następujące polecenia powłoki korzeni można stosować:

settings put global airplane_mode_on 1 
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true 

celu wyłączenia trybu Samolot polecenia te korzeń powłoki można stosować:

settings put global airplane_mode_on 0 
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false 

informacje pobrane z here

Zastrzeżenie: ta informacja jest dostarczana "tak jak jest" bez żadnych form gwarancji.

+0

Czy ktoś może powiedzieć, czy to działa w systemie Android 4.3? – Muzikant

+0

^4.3 wymaga dodatkowej pracy. – Edison

+0

@Edison, jakiego rodzaju pracy? – Muzikant

0

Dla KitKat, musisz dodać android:sharedUserId="android.uid.system" w pliku manifestu.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.airplanesetting" 
    android:versionCode="1" 
    android:versionName="1.0" 
    android:sharedUserId="android.uid.system" > 
+1

Otrzymuję "błąd instalacji: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE" od zaćmienia podczas próby zainstalowania apk z tym w tam – ComputerEngineer88

Powiązane problemy