首页 文章

打开GPS时出现异常[重复]

提问于
浏览
1

这个问题在这里已有答案:

这是我的代码:

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

This is the error in logcat:

FATAL EXCEPTION:main进程:com.example.satyajittarafdar.gps_on_automatic,PID:20469 java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.satyajittarafdar.gps_on_automatic / com.example.satyajittarafdar.gps_on_automatic.MainActivity}:java .lang.SecurityException:Permission Denial:不允许从android.app.ActivityThread.handleLaunchActivity(来自android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429)的pid = 20469,uid = 10240发送广播android.location.GPS_ENABLED_CHANGE ActivityThread.java:2493)在android.app.Handler.dispatchMessage上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1357)的android.app.ActivityThread.-wrap11(ActivityThread.java)(Handler.java: 102)在android.app.Looper.loop(Looper.java:148)的android.app.ActivityThread.main(ActivityThread.java:5459),位于com.android的java.lang.reflect.Method.invoke(Native Method) com.android.i上的.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728) nternal.os.ZygoteInit.main(ZygoteInit.java:618)引起:java.lang.SecurityException:Permission Denial:不允许从pid = 20469发送广播android.location.GPS_ENABLED_CHANGE,在android.os.Parcel发送uid = 10240 .readException(Parcel.java:1620)位于android.app.ContextImpl.sendBroadcast(ContextImpl . )的android.app.Aard.Percel.readException(Parcel.java:1573)android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3128) . java:767)在android.apptent.And.Bercast(ContextWrapper.java:396)at com.example.satyajittarafdar.gps_on_automatic.MainActivity.onCreate(MainActivity.java:19)at android.app.Activity.performCreate(Activity.java) :6259)在android.app.Anstrumentation.callActivityOnCreate(Instrumentation.java:1130)android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2382)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)at android .app.ActivityThread.-wrap11(ActivityThread.java)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1357)位于android.app.AtoT.Thread.main(ActivityThread)的android.os.Handler.dispatchMessage(Handler.java:102)android.os.Looper.loop(Looper.java:148) .java:5459)位于com.android.internal.os.ZygoteInit的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)的java.lang.reflect.Method.invoke(Native Method) . 主要(ZygoteInit.java:618)

2 回答

  • 0

    自Android 4.4版以来,您无法以编程方式更改gps状态 .

    好解释原因:Read this post

    您应该如何使用意图将用户发送到phoen设置并请求他手动启用它 .

  • 0

    这不作为公共API提供,您无法以编程方式从Android 4.4及更高版本更改GPS状态 . 您已准备好意图并将用户重定向到设置 .

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

    这里有一些参考:

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

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

相关问题