PendingIntent打开其他应用出现 SecurityException问题

获取其它程序的Context,通过createPackageContext(String packageName,int flags)创建的这个Context,通过PendingIntent.getActivity()点击打开其他应用出现
SecurityException问题:

E/AndroidRuntime(17055): java.lang.SecurityException: Permission Denial: getIntentSender() from pid=17055, uid=10092, (need uid=10091) is not allowed to send as package com.tencent.mm
E/AndroidRuntime(17055):     at android.os.Parcel.readException(Parcel.java:1546)
E/AndroidRuntime(17055):     at android.os.Parcel.readException(Parcel.java:1499)
E/AndroidRuntime(17055):     at android.app.ActivityManagerProxy.getIntentSender(ActivityManagerNative.java:3907)
E/AndroidRuntime(17055):     at android.app.PendingIntent.getActivity(PendingIntent.java:291)
E/AndroidRuntime(17055):     at android.app.PendingIntent.getActivity(PendingIntent.java:252)

解决方法:
(1)在AndroidManifest.xml中增加:android:sharedUserId="android.uid.system"
(2)增加系统签名(或在Android.mk中增加LOCAL_CERTIFICATE := platform)

注意:当需要对非本应用进行操作需要用到Context对其他应用的操作,必须分清是否时其他应用的Context

猜你喜欢

转载自blog.csdn.net/u010867436/article/details/51029254
今日推荐