https://developer.android.com/about/ver ... changes-12? hl=fr#exact-alarm-permission
А по поводу этого (https://developer.android.com/develop/b ... dule?hl=fr #set-exact-alarm) существует 3 метода, использующих точные сигналы тревоги:
- setExact()
- setExactAndAllowWhileIdle()
- setAlarmClock()
Включен моя версия приложения 1.12, SCHEDULE_EXACT_ALARM, не проверена в манифесте, но мое настоящее устройство Android 12 могло использовать setAlarmClock. Я в этом уверен, потому что добавил логи этой операции. Более того, я проверил через Git, и файл манифеста не содержит SCHEDULE_EXACT_ALARM для версии 1.12.
Кроме того, когда я начал работать над своей отладочной версией 1.13, из Visual Studio запустился VS2022. для выдачи исключения при срабатывании setAlarmClock только на моем эмуляторе Android 12 (api_31) (тогда как я также использую эмулятор Android 14 - api 34 - и никаких исключений не происходит).
Java.Lang.SecurityException: «Вызывающий объект com.o4d.dringcat должен удерживать android.permission.SCHEDULE_EXACT_ALARM, чтобы установить точные сигналы тревоги».
Это было довольно странно, но я добавил это в Манифест.
Поэтому у меня так много вопросов:
- Как возможно, что мое устройство Android 12 может активировать в моей версии приложения 1.12 (без SCHEDULE_EXACT_ALARM) метод AlarmManager.setAlarmClock (и добиться успеха)?
- Почему VS2022 начал меня предупреждать только недавно? (я почти уверен, что раньше мне удавалось запускать будильник без каких-либо исключений: я тестирую только на эмуляторе Android 14 и 12)
- Почему в документации Android указано, что SCHEDULE_EXACT_ALARM необходим для Android 12 И после, тогда как мой VS2022 не выдает исключение при тестировании на эмуляторе Android 14?
- И, наконец, почему мой эмулятор Android 14 может срабатывать точно сигнализация без этого разрешения? (Я проверил, что мой эмулятор и «Параметры разработчика» отключены, поэтому обойти это поведение невозможно). К сожалению, я не могу протестировать настоящее устройство Android 14.
Заранее благодарю за помощь: Я был бы очень признателен за немного света, чтобы понять это поведение.
ОБНОВЛЕНИЕ от 10 октября 2024 г.; Журналы устройств
Эмулятор Android 12:
Код: Выделить всё
10-07 18:03:25.273 pixel_5_-_api_31 Error 31291 mono-rt java.lang.SecurityException: Caller com.o4d.dringcat needs to hold android.permission.SCHEDULE_EXACT_ALARM to set exact alarms.
10-07 18:03:25.273 pixel_5_-_api_31 Error 31291 mono-rt [ERROR] FATAL UNHANDLED EXCEPTION: Java.Lang.SecurityException: Caller com.o4d.dringcat needs to hold android.permission.SCHEDULE_EXACT_ALARM to set exact alarms.
---> Android.OS.RemoteException: Remote stack trace: at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:2539)

И на моем эмуляторе Android 14 все в порядке:

Подробнее здесь: https://stackoverflow.com/questions/790 ... -vs2022-on
Мобильная версия