权限拒绝:getIntentSender():uid = 1001,(需要uid = 1000)

时间:2013-07-13 20:30:09

标签: android security

我正在制作一款控制手机网络状态的应用(在2G / 3G之间切换)。

由于某些原因,我的应用程序使用sharedUserId =“android.uid.system”,但在Phone的上下文中运行,(即android:process =“com.android.phone”) 一切正常,直到我开始使用AlarmManager。

在我的服务的onCreate()(当然是在进程com.android.phone的上下文中运行)中,以下函数给出异常:

pi = PendingIntent.getBroadcast(this, 0, new Intent(this, AlarmReceiver.class), 0);

我收到了这个错误:

E/AndroidRuntime(21289): Caused by: java.lang.SecurityException: Permission Denial: getIntentSender() from pid=21289, uid=1001, (need uid=1000) is not allowed to send as package com.net_toggle

AlarmReceiver是我服务的私有类,具有相同的上下文。

我当然在互联网和本网站上搜索,但找不到解决方案。

1 个答案:

答案 0 :(得分:0)

提供有关此问题的链接

https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/

修改

您是否已将<receiver>添加到您的清单中?

喜欢:

      <receiver android:name="MyScheduleReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
    <receiver android:name="MyStartServiceReceiver" >
    </receiver>

并且还允许:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>