java.lang.SecurityException android.permission.SCHEDULE_EXACT_ALARM 錯誤
造成條件: 1. Android targetSdk 設定到 31 以上 2. 使用 Android 12 以上機型 3. 使用到 AlarmManager 錯誤截圖: 造成原因 : 缺少 Permission AndroidManifest.cml 補上 Permission <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" /> google 說明 連結 設定完後,可以到 APP 設定內查看 Alarms & reminders Default 是開啟的 如何處理: 1. 取得 AlarmManager AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); boolean isPermissionAgreed = alarmManager.canScheduleExactAlarms(); 2. 檢查權限 @RequiresApi(api = Build.VERSION_CODES.S) public void checkPermission() { AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); boolean isPermissionAgreed = alarmManager.canScheduleExactAlarms(); } 3. 使用者可能手動關閉,加入 if-else 但斷是否繼續執行 setAlarm 動作 if-else 判斷使用者是否將權限關閉,避免操作 Crash 後記 如果這篇文章對於你有幫助,可以...