2017-04-10 152 views
0

当尝试使用startActivityForResult(intent, requestCode);final Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);意图时,我得到java.lang.SecurityException。有趣的是,这个崩溃只发生在Android 5.1 - 5.1.1 我没有华为设备。你能不能给我一些建议呢?java.lang.SecurityException:权限拒绝:启动意图{act = android.settings.USAGE_ACCESS_SETTINGS}

堆栈跟踪

Fatal Exception: java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.USAGE_ACCESS_SETTINGS cmp=com.android.settings/.Settings$UsageAccessSettingsActivity } from ProcessRecord{11b5f1a1 19764:com.myproject.my/u0a167} (pid=19764, uid=10167) not exported from uid 1000 
     at android.os.Parcel.readException(Parcel.java:1546) 
     at android.os.Parcel.readException(Parcel.java:1499) 
     at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2448) 
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1496) 
     at android.app.Activity.startActivityForResult(Activity.java:3794) 
     at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) 
     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:77) 
     at android.app.Activity.startActivityForResult(Activity.java:3755) 
     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) 
     at com.myproject.my.utils.PermissionsHelper$2.onClick(PermissionsHelper.java:134) 
     at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:157) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5298) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706) 
+0

请编辑您的问题,并张贴整个Java堆栈跟踪。 – CommonsWare

+0

@CommonsWare我添加了堆栈跟踪,谢谢。 – LeShChEnKoUa

回答

2

无论出于何种原因,华为离开了<intent-filter>到位这项活动,但是他们将其标记为不出口。你无法开始这项活动。你所能做的就是捕捉异常并向用户解释你不能在那里导航。

+0

非常感谢你的解释! – LeShChEnKoUa

0

据Android开发者文档。

在某些情况下,匹配活动可能不存在,因此请确保您的防护措施不受此影响。

链接:ACTION_USAGE_ACCESS_SETTINGS

+0

是的,谢谢,我知道它并检查活动是否存在 – LeShChEnKoUa

相关问题