我与此帖有完全相同的问题: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"/>
但仍没有成功!
我真的很感激,如果有人能告诉我我做错了什么。
感谢Darshan,但我只想在电池电量不足或插上电源时运行服务。请您告诉我我该怎么做? –
如果这些是你关心的唯一两个事件,那么你根本不需要'ACTION_BATTERY_CHANGED',并且在清单中你将很好地注册它们。被插入的广播是“ACTION_POWER_CONNECTED”。这两个操作都可以在同一个'intent-filter'下,你不需要设置优先级,也不需要'BATTERY_STATS'权限。 –