2016-12-29 4 views
1

Dies ist mein Code:Ausnahme während auf GPS drehen

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 



     Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE"); 
     intent.putExtra("enabled", true); 
     sendBroadcast(intent); 
    } 
} 

Dies ist der Fehler in logcat:

FATAL AUSNAHME: Haupt Prozess: com.example.satyajittarafdar.gps_on_automatic, PID: 20469 java.lang.RuntimeException: Aktivität konnte nicht gestartet werden ComponentInfo {com.example.satyajittarafdar.gps_on_automatic/com.example.satyajittarafdar.gps_on_a utomatic.MainActivity}: java.lang.SecurityException: Permission Denial: nicht erlaubt Broadcast android.location.GPS_ENABLED_CHANGE von pid = 20469 zu senden, uid = 10240 bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java: 2429) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2493) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java : 1357) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5459) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:728) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618) verursacht durch: java.lang.SecurityException: Berechtigungsverweigerung: nicht zulässig senden Broadcast android.location.GPS_ENABLED_CHANGE von pid = 20469, uid = 10240 bei android.os.Parcel.readException (Parcel.java:1620) bei android.os.Parcel.readException (Parcel.java:1573) bei android.app.ActivityManagerProxy.broadcastIntent (ActivityManagerNative.java:3128) bei android.app.ContextImpl.sendBroadcast (ContextImpl.java:767) bei android.content.ContextWrapper.sendBroadcast (ContextWrapper.java:396) bei com.example.satyajittarafdar.gps_on_automatic.MainActivity.onCreate (MainActivity.java:19) bei android.app.Activity.performCreate (Activity.java : 6259) unter android.app.Instrumentation.callActivityOnCreate (Instrumentatio n.java:1130) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2382) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2493) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1357) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java: 5459) bei java.lang.reflect.Method.invoke (Mutter Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:728) bei com.android.internal. os.ZygoteInit.main (ZygoteInit.java:618)

Antwort

0

Sie können den GPS-Status programmatisch seit Android-Version 4.4 nicht ändern.

gute Erklärung, warum: Read this post

Was sollten Sie so sehr darauf bedacht sind, mit den Benutzern auf die phoen Einstellung zu schicken und ihn bitten, ihn manuell zu aktivieren.

+0

Aber während Standard-Google Map verwenden, wenn ur GPS ausgeschaltet ist, dann wird es automatisch eingeschaltet nur einen Alarm Dialog msg zeigt ... es wird nicht zu den Einstellungen gehen, um es zu aktivieren. –

+0

Dies ist der Code für ON GPS manuell und es funktioniert einwandfrei Intent myIntent = neue Absicht (Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity (meinIntent); aber ich möchte es nicht über Einstellungen aktivieren. Wenn Code vorhanden ist, helfen Sie mir. Vielen Dank im Voraus –

0

Dies ist nicht als öffentliche API verfügbar, und Sie können den GPS-Status ab Android 4.4 und höher nicht programmatisch ändern. Sie haben Vorbereitungsabsicht und leiten den Benutzer zu den Einstellungen um.

startActivity(context, new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); 

sind hier einige Referenzen:

https://stackoverflow.com/a/22529296/3758024

https://stackoverflow.com/a/20236331/3758024

+0

Aber während der Verwendung von Google Map Standard, wenn Ihr GPS ausgeschaltet ist, wird es automatisch eingeschaltet und zeigt nur einen Alarmdialog msg ... es wird nicht auf die Einstellungen ON –

+0

Dies ist der Code zu ON GPS manuell und es funktioniert perfekt Intent myIntent = new Intent (Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity (meinIntent); aber ich möchte es nicht durch Einstellungen aktivieren. Wenn Code vorhanden ist, hilf mir. Danke im Voraus –

Verwandte Themen