繁体   English   中英

SecurityException:权限被拒绝:不允许发送广播android.intent.action.BATTERY_CHANGED

[英]SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BATTERY_CHANGED

我正在尝试开发一个显示电池温度的小部件。 当我使用android.intent.action.BATTERY_CHANGED注册广播接收器时

它显示出这样的错误。

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BATTERY_CHANGED from pid=-1, uid=10058

据我所知,不需要广播许可。 如果是活动的话。 它工作正常。

    Intent intent = new Intent();
    intent.setAction("android.intent.action.BATTERY");
    return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

据我所知,不需要广播许可

就在这里。 您正在发送广播。 并且,引用ACTION_BATTERY_CHANGED的文档

这是受保护的意图,只能由系统发送。

您不是系统;您不是系统。 您无法发送此广播。

我不知道为什么要创建一个试图发送此广播的PendingIntent ,但是您将需要做其他事情。 如果您的目的是通过轻按应用小部件来触发BroadcastReceiver ,而该接收者恰好在听ACTION_BATTERY_CHANGED ,那么在创建PendingIntent时只需使用一个明确的Intent标识接收者:

PendingIntent.getBroadcast(context, 0, new Intent(this, YourReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM