У меня есть BroadcastReceiver с BATTERY_CHANGED IntentFilter. Когда я пытаюсь отправить трансляцию, onReceive не вызывает. Что не так? Вот мое описание приемника в очевидномBroadcastReceiver's onReceive не вызывается при изменении уровня заряда аккумулятора
<receiver android:name=".receivers.BatteryReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED"/>
</intent-filter>
</receiver>
Мой BroadcastReceiver
public class BatteryReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("tag", "onRecv");
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
if (level != -1 && scale != -1) {
float batteryPct = level/(float) scale;
if (batteryPct < 30) {
NotificationBuilder.notifyWithActions(context, R.drawable.ic_info_black_24dp,
context.getResources().getString(R.string.app_name),
context.getResources().getString(R.string.battery),
context.getResources().getInteger(R.integer.battery));
}
}
}`}
Стараюсь
LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(Intent.ACTION_BATTERY_CHANGED));
Вы называете это локально? инициируя намерение? – Elltz
Да. Для проверки –
afaik; он не будет работать, вы можете инициировать системные намерения. – Elltz