diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a9b267c..6c7a375 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,6 +11,8 @@ + + = android.os.Build.VERSION_CODES.M) { + alermManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); + } else { + alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); + } } while (c.moveToNext()); } c.close(); diff --git a/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java index 96a9ff8..bf1521c 100644 --- a/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ b/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -159,6 +159,14 @@ public class NoteEditActivity extends Activity implements OnClickListener, return; } initResources(); + + // 检查并请求闹钟和通知权限 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) { + requestPermissions(new String[]{android.Manifest.permission.POST_NOTIFICATIONS}, 1); + } + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) { + requestPermissions(new String[]{android.Manifest.permission.SCHEDULE_EXACT_ALARM}, 2); + } } /** @@ -623,13 +631,17 @@ public class NoteEditActivity extends Activity implements OnClickListener, if (mWorkingNote.getNoteId() > 0) { Intent intent = new Intent(this, AlarmReceiver.class); intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); - PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); + PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_IMMUTABLE); AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE)); showAlertHeader(); if(!set) { alarmManager.cancel(pendingIntent); } else { - alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { + alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, date, pendingIntent); + } else { + alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent); + } } } else { /** diff --git a/test000.txt b/test000.txt index fe9b03f..1702dda 100644 --- a/test000.txt +++ b/test000.txt @@ -287,3 +287,6 @@ git checkout -b 邓先财_branch origin/邓先财_branch git branch git checkout main git checkout 邓先财_branch + + +test