JAVAlang.SecurityException:权限拒绝:启动意图{act=安卓.settings.USAGE_ACCESS_settings}
我懂java。lang.SecurityException当试图以final Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
意图startActivityForResult(intent, requestCode);
时。有趣的是,这种崩溃只发生在Android 5.1-5.1.1的华为上
我没有华为设备。你能给我一些建议吗
Stacktrace
Fatal Exception: java.lang.SecurityException: Permission Denial: starting Intent { act=安卓.settings.USAGE_ACCESS_SETTINGS cmp=com.安卓.settings/.Settings$UsageAccessSettingsActivity } from ProcessRecord{11b5f1a1 19764:com.myproject.my/u0a167} (pid=19764, uid=10167) not exported from uid 1000
at 安卓.os.Parcel.readException(Parcel.java:1546)
at 安卓.os.Parcel.readException(Parcel.java:1499)
at 安卓.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2448)
at 安卓.app.Instrumentation.execStartActivity(Instrumentation.java:1496)
at 安卓.app.Activity.startActivityForResult(Activity.java:3794)
at 安卓.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
at 安卓.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:77)
at 安卓.app.Activity.startActivityForResult(Activity.java:3755)
at 安卓.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
at com.myproject.my.utils.PermissionsHelper$2.onClick(PermissionsHelper.java:134)
at 安卓.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:157)
at 安卓.os.Handler.dispatchMessage(Handler.java:102)
at 安卓.os.Looper.loop(Looper.java:135)
at 安卓.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.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:706)
# 1 楼答案
根据android开发者文档
链接:ACTION_USAGE_ACCESS_SETTINGS
# 2 楼答案
无论出于何种原因,华为为这项活动保留了
<intent-filter>
,但他们将其标记为未出口。你不可能开始这项活动。你所能做的就是捕捉异常并向用户解释你无法在那里导航