我正在开发一个 android 项目,在该项目中我在一个扩展 BroadcastReceiver 的类中注册一个广播接收器,该类接收ACTION_POWER_CONNECTED
和ACTION_POWER_DISCONNECTED
的意图ACTION_SCREEN_OFF
。
当收到这些不同的意图时,它会调用另一个扩展类中的函数Service
。
当它接收到它时,ACTION_POWER_CONNECTED
它还会调用一个名为isPowerConnected
该函数的函数,该函数应该检查电源是否连接,如果没有,则启用 WakeLock。
我遇到的问题是,当我执行该isPowerConnected
功能时,它似乎第一次工作,但每隔一次收到:
android.content.ReceiverCallNotAllowedException: IntentReceiver 组件不允许注册接收意图。
我不知道如何解决这个问题。下面是 isPowerConnected 的代码。
public boolean isPowerConnected()
{
int pluggedIn = -1;
try
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
pluggedIn = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
}
catch (Exception ex)
{
Log.e("IsPowerConnected", ex.toString());
}
return pluggedIn == BatteryManager.BATTERY_PLUGGED_AC || pluggedIn == BatteryManager.BATTERY_PLUGGED_USB;
}
感谢您的任何帮助,您可以提供。