我正在制作一个控制电话网络状态的应用程序(在 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 是我的服务的私有类,具有相同的上下文。
我当然在互联网和这个网站上搜索过,但找不到解决方案。