setAlarmClock не работает при установке из приемника - PullRequest
0 голосов
/ 09 мая 2018

В моем коде у меня есть приемник вещания

     <receiver
        android:name=".alarm.AlarmReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.TIME_SET" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.BalDroid.YekNegah.alarm.dailyAction" 
        />
        </intent-filter>
    </receiver>     

Я планирую тревогу в этом приемнике в методе onReceive

  PendingIntent pi = PendingIntent.getBroadcast(context, AlarmRow.getId(mycursor), i, PendingIntent.FLAG_UPDATE_CURRENT);
                if (Build.VERSION.SDK_INT >= 21) {

                    AlarmManager.AlarmClockInfo alarmInfo = new AlarmManager.AlarmClockInfo(
                            mycal.getTimeInMillis(),pi);
                   mgr.setAlarmClock(alarmInfo,pi);

                    // Create a Pending intent to show Alarm Details
                } 

хотя приемник работает, но тревога не срабатывает с mgr.setAlarmClock. Но когда я использую mgr.setExactAndAllowWhileIdle тревожный триггер

(из-за точности setAlarmClock я должен использовать setAlarmClock в своем коде)

И когда я планирую mgr.setAlarmClock из MainActivity (при запуске приложения вручную), он работает.
Я не могу найти решение !!.
(Я не знаю, почему не работает от приемника).

1 Ответ

0 голосов
/ 13 июля 2019

Мое приложение также называется setAlarmClock на AlarmManager, однако событие не сработало. Причиной для меня стало ограничение по умолчанию фоновых процессов от производителя (у меня телефон Xiaomi).

Перейдите в Настройки -> Ваше приложение и найдите варианты ограничения фона. Отключите ограничения и setAlarmClock должно работать.

В заключение, результат зависит от настроек производителя по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...