安全异常:权限拒绝:启动意图{act=android.intent.action.MAIN cat=[android.intent.category.HOME]}。

3

当用户按下返回键时,我的应用程序会最小化。这是onBackPressed()方法。

@Override
public void onBackPressed() {
    Intent i = new Intent();
    i.setAction(Intent.ACTION_MAIN);
    i.addCategory(Intent.CATEGORY_HOME);
    startActivity(i);
}

但是它显示了这个错误,我不知道如何解决。请帮助我解决这个问题。

这是错误日志:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=com.android.customlockapp/.CustomLockLauncher } from ProcessRecord{41490d70 456:itpp.anubhabmassretail/u0a100} (pid=456, uid=10100) not exported from uid 10061
   at android.os.Parcel.readException(Parcel.java:1425)
   at android.os.Parcel.readException(Parcel.java:1379)
   at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1761)
   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1411)
   at android.app.Activity.startActivityForResult(Activity.java:3351)
   at android.app.Activity.startActivityForResult(Activity.java:3312)
   at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:839)
   at android.app.Activity.startActivity(Activity.java:3522)
   at android.app.Activity.startActivity(Activity.java:3490)
   at itpp.anubhabmassretail.MainActivity.onBackPressed(MainActivity.java:87)
   at android.app.Activity.onKeyUp(Activity.java:2131)
   at android.view.KeyEvent.dispatch(KeyEvent.java:2633)
   at android.app.Activity.dispatchKeyEvent(Activity.java:2361)
   at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.dispatchKeyEvent(ActionBarActivityDelegateICS.java:258)
   at    com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1823)
   at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3600)
   at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3570)
   at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:2809)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:4794)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
   at dalvik.system.NativeStart.main(NativeStart.java)

1
你能解释一下为什么你试图启动主屏幕应用程序(但你的logcat看起来像是锁屏),而不是遵循http://developer.android.com/guide/components/tasks-and-back-stack.html 中关于后退栈行为的说明吗? - undefined
因为我想最小化应用程序并显示主屏幕,所以我这样做。有没有其他更高效的方法可以实现这个功能? - undefined
你读了链接吗?当用户从另一个应用切换到你的应用并尝试返回时会发生什么?用户会去哪里,这是否遵循Android导航模式:http://developer.android.com/design/patterns/navigation.html#between-apps - undefined
是的,兄弟,你说得对,那还有其他办法吗?当用户按下返回按钮时我该怎么做? - undefined
1
阅读链接。看看这个链接:http://developer.android.com/training/implementing-navigation/temporal.html弄清楚对于你的应用程序来说,后退堆栈行为是有意义的。祝你好运。 - undefined
2个回答

1
添加
android:exported="true"

添加到您的活动清单中。

(有点过期的答案,但仍然:D)


0
在MainActivity.cs中,我添加了'Exported = true'。
[Activity(WindowSoftInputMode = SoftInput.AdjustResize,
    HardwareAccelerated = true, ResizeableActivity = false,Exported = true)]

你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接