我遇到了与这篇文章完全相同的问题:电池广播接收器不工作 https://stackoverflow.com/questions/8582539/battery-broadcast-receiver-doesnt-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"/>
但还是没有成功!
如果有人能告诉我我做错了什么,我将非常感激。
From ACTION_BATTERY_CHANGED 的文档 http://developer.android.com/reference/android/content/Intent.html#ACTION_BATTERY_CHANGED:
您无法通过清单中声明的组件接收此信息,只能通过使用 Context.registerReceiver() 显式注册它。有关通过清单接收器发送和接收的不同电池相关广播,请参阅 ACTION_BATTERY_LOW、ACTION_BATTERY_OKAY、ACTION_POWER_CONNECTED 和 ACTION_POWER_DISCONNECTED。
现在您已经知道了:您必须从 Java 代码中显式注册它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)