2014-04-05 7 views
10

Ich weiß. Tu das nicht. Es ist mir egal. Es ist für eine Root-App.Toggle GPS programmgesteuert Android 4.4

ist die App auf /system/app/ mit 0777 Erlaubnis installiert

ich mit zuvor:

ContentResolver cr = context.getContentResolver(); 
Settings.Secure.setLocationProviderEnabled(cr, LocationManager.GPS_PROVIDER, !isGpsOn); 

Dies ist, wie ich es auf 4.4 ich versucht, da diese veraltet war:

int value; 
if (isGpsOn)value = Settings.Secure.LOCATION_MODE_OFF; 
     else value = Settings.Secure.LOCATION_MODE_HIGH_ACCURACY; 
Settings.Secure.putInt(cr, Settings.Secure.LOCATION_MODE, value); 

Und es ist laut (einige Benutzer Berichte) lautlos. Wie kann ich GPS mit Android 4.4 von einer App im Systemordner richtig umschalten?

+12

ich Ihr Intro gefällt. Es hat eine Einstellung. Die gute Art. – keyser

+0

Sie können nicht. Deshalb scheitert es im Stillen. – ChuongPham

+0

@ChuongPham, ich kann das nicht akzeptieren, weil System-Apps GPS (d. H. Einstellungen) umschalten können. Es muss eine Möglichkeit geben, damit meine App wie eine System-App funktioniert. (Ich habe auch kein 4.4-Gerät zum Testen, oder ich habe es herausgefunden). – Jakar

Antwort

4

Tun Sie dies nicht. :)

Überprüfen Sie den Code für GPS TOGGLER

GPS Toggle-Widget für Android-Geräte verwurzelt. Es wrks gut auch für diese ROMs und Kernel, andere Software fehlgeschlagen.

mit Ihrem Code, nur Überprüfung:
Hoffe, dass Sie die folgenden Berechtigungen in Ihrem Manifest erklärt:

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

ich dies auf verwurzelten LG Optimus benutzt hatte, Android 4.0/4.1. verlautet dies nicht mehr arbeiten kann, aber ich bin nicht sicher, es für alle Geräte und o.s .:

Schalter es ON/OFF mit einem Flagprüfung und diesem Code:

try { 
    Settings.Secure.putString (context.getContentResolver(), 
    Settings.Secure.LOCATION_PROVIDERS_ALLOWED, String.format ("%s,%s", 
    Settings.Secure.getString (context.getContentResolver(), 
    Settings.Secure.LOCATION_PROVIDERS_ALLOWED), LocationManager.GPS_PROVIDER)); 
     } catch(Exception e) {} 
+0

Ich hatte keine Chance zu testen, aber es scheint vielversprechend. Danke für die Antwort. – Jakar

+0

Tasker und Power Toggles können dies nur mit root tun, ohne eine System-App zu benötigen. Weiß jemand, wie sie das erreichen können? – Flyview