我遇到了与这篇文章完全相同的问题: Battery broadcast receiver doesn't work。但似乎没有人回答那个问题。
这是我的广播接收器:
public class BatteryLevelReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.v("plugg", "plug change fired");
Toast.makeText(context, " plug change fired", Toast.LENGTH_LONG).show();
}
这是我的AndroidManifest.xml文件:
<receiver android:name=".ReceversAndServices.BatteryLevelReceiver">
<intent-filter android:priority="900">
<action android:name="android.intent.action.BATTERY_LOW" />
</intent-filter>
</receiver>
<receiver android:name=".ReceversAndServices.BatteryLevelReceiver">
<intent-filter android:priority="900">
<action android:name="android.intent.action.BATTERY_CHANGED" />
</intent-filter>
</receiver>
我还在清单文件中添加了这行代码:
<uses-permission android:name="android.permission.BATTERY_STATS"/>
但仍然没有成功!
如果有人能给我意见,告诉我到底哪里做错了,我将不胜感激。
ACTION_BATTERY_CHANGED
,在清单文件中注册它们即可。插入电源的广播是ACTION_POWER_CONNECTED
。这两个操作可以在同一个intent-filter
下进行,你无需设置优先级,并且也不需要BATTERY_STATS
权限。 - Darshan Rivka Whittle