2016-12-29 7 views
1

Это мой код:Исключение при включении GPS

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); 
    } 
} 

Это ошибка в LogCat:

FATAL ИСКЛЮЧЕНИЕ: главный процесса: com.example.satyajittarafdar.gps_on_automatic, PID: 20469 java.lang.RuntimeException: не удается запустить активность ComponentInfo {com.example.satyajittarafdar.gps_on_automatic/com.example.satyajittarafdar.gps_on_a utomatic.MainActivity}: java.lang.SecurityException: Разрешение отказа: не разрешено отправлять широковещательный android.location.GPS_ENABLED_CHANGE из PID = 20469, UID = 10240 в android.app.ActivityThread.performLaunchActivity (ActivityThread.java: 2429) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2493) на android.app.ActivityThread.-wrap11 (ActivityThread.java) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java : 1357) на android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:148) на android.app.ActivityThread.main (ActivityThread.java:5459) на java.lang.reflect.Method.invoke (нативный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618) Вызвано: java.lang.SecurityException: Разрешение отказа: не разрешено отправить широковещательную версию android.location.GPS_ENABLED_CHANGE из pid = 20469, uid = 10240 at android.os.Parcel.readException (Parcel.java:1620) на android.os.Parcel.readException (Parcel.java:1573) на android.app.ActivityManagerProxy.broadcastIntent (ActivityManagerNative.java:3128) на android.app.ContextImpl.sendBroadcast (ContextImpl.java:767) на android.content.ContextWrapper.sendBroadcast (ContextWrapper.java:396) на com.example.satyajittarafdar.gps_on_automatic.MainActivity.onCreate (MainActivity.java:19) в android.app.Activity.performCreate (Activity.java : 6259) по адресу android.app.Instrumentation.callActivityOnCreate (Instrumentatio n.java:1130) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2382) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2493) на android.app.ActivityThread.-wrap11 (ActivityThread.java) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1357) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:148) at android.app.ActivityThread.main (ActivityThread.Java: 5459) на java.lang.reflect.Method.invoke (Native Method) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:728) в com.android.internal. os.ZygoteInit.main (ZygoteInit.java:618)

ответ

0

Вы не можете изменить состояние gps программно, так как версия для Android 4.4.

Хорошее объяснение, почему: Read this post

То, что вы должны так использует намерение направить пользователя к настройке Phoen и просить его, чтобы включить его вручную.

+0

Но при использовании по умолчанию Google Map, если Ур GPS выключен, то он включится автоматически показывать только предупреждения диалога сообщ ... это не приведет к настройкам, чтобы включить его. –

+0

Это код для ON gps вручную и отлично работает Intent myIntent = new Intent (Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity (myIntent); , но я не хочу, чтобы он был включен через настройки. Если какой-либо код существует, помогите мне. Thanx заблаговременно –

0

Это не доступно как открытый API, и вы не можете программно изменять состояние GPS с Android 4.4 и выше. вы подготовили намерение и перенаправили пользователя на настройки.

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

вот некоторые ссылки:

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

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

+0

Но при использовании карты Google по умолчанию, если ур GPS выключен, тогда он автоматически включается, показывая только диалог предупреждения. Msg ... это не займет у вас настроек, чтобы он был включен. –

+0

Это код для ON gps вручную и его отлично работает Intent myIntent = new Intent (Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity (myIntent); но я не хочу, чтобы он был включен через настройки. Если какой-либо код есть, помогите мне. Заранее спасибо –