Mam dokładnie ten sam problem, co ten wpis: Battery broadcast receiver doesn't work. Ale wydaje się, że nikt nie odpowiedział na to pytanie.Nie mogę odbierać transmisji po zmianie stanu baterii?
Oto moja BroadcastReceiver:
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();
}
I tu jest moje 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>
Dodałem również linię do manifestu:
<uses-permission android:name="android.permission.BATTERY_STATS"/>
ale nadal bez powodzenia!
Byłbym bardzo wdzięczny, gdyby ktoś mógł mi doradzić, co robię źle.
dziękuję Darshanowi, ale chcę uruchomić usługę tylko wtedy, gdy bateria jest niska lub jest podłączona. Czy mógłbyś powiedzieć jak mam to zrobić? –
Jeśli są to jedyne dwa wydarzenia, na których Ci zależy, to wcale nie potrzebujesz "ACTION_BATTERY_CHANGED", a będziesz w porządku rejestrować je w manifeście. Transmisja do podłączenia to "ACTION_POWER_CONNECTED". Obie akcje mogą znajdować się pod tym samym 'filtrem intencji ', nie musisz ustawiać priorytetu i nie potrzebujesz uprawnienia" BATTERY_STATS ". –