java.lang.SecurityException: 权限拒绝:从pid=1484,uid=10151获取getIntentSender()(需要uid=1000)

3

我在使用安卓4.4.2HTC DESIRE 626GPLUS DUAL SIM手机时遇到了以下错误:

java.lang.SecurityException: Permission Denial: getIntentSender() from pid=1484, uid=10151, (need uid=1000) is not allowed to send as package android
       at android.os.Parcel.readException(Parcel.java:1472)
       at android.os.Parcel.readException(Parcel.java:1426)
       at android.app.INotificationManager$Stub$Proxy.cancelAllNotifications(INotificationManager.java:271)
       at android.app.NotificationManager.cancelAll(NotificationManager.java:220)
       at com.bakar.GcmIntentService.onHandleIntent(GcmIntentService.java:92)
       at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
       at android.os.Handler.dispatchMessage(Handler.java:110)
       at android.os.Looper.loop(Looper.java:193)
       at android.os.HandlerThread.run(HandlerThread.java:61)
该错误源于权限不足,导致无法发送通知。

UID 1000不是超级用户吗?(与sudo相同?) - Shark
1
嘿,你找到解决办法了吗?我也遇到了同样的问题。使用try catch可以防止崩溃,但我认为这不是最好的解决办法。 - Stoycho Andreev
2个回答

4
尝试在你的代码中添加一个try-catch,像这样:try-catch
NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
try {
    nMgr.cancelAll();
} catch (Exception e) {
    e.printStackTrace();
}

由于您提到的设备型号可能不支持 cancelAll() 方法,因此请注意。

2
这可以防止崩溃,但我觉得这不是一个解决方案。 - Parth Anjaria

0

您不能请求用户ID 1000,因为这是系统用户ID。


我没有请求UID 1000,但仍然出现了这个异常。 - Vipul Asri
我在以下代码行中遇到了错误。NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nMgr.cancelAll(); - Vipul Asri
正如您所看到的,异常也提到了此错误:at android.app.NotificationManager.cancelAll(NotificationManager.java:220) - Vipul Asri

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