gpt4 book ai didi

android - SecurityException : Permission Denial: not allowed to send broadcast android. intent.action.BATTERY_CHANGED

转载 作者:行者123 更新时间:2023-11-30 01:58:30 34 4
gpt4 key购买 nike

我正在尝试开发一个显示电池温度的小部件。当我使用 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

据我所知,广播不需要许可。如果是在 Activity 的情况下。它工作正常。

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

最佳答案

As far as i know there is no need of permission for broadcast

是的,有。您正在发送广播。并且,引用 the documentation for ACTION_BATTERY_CHANGED :

This is a protected intent that can only be sent by the system.

你不是系统;你不能发送这个广播。

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

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

关于android - SecurityException : Permission Denial: not allowed to send broadcast android. intent.action.BATTERY_CHANGED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31833054/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com