Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5f14dbbc5b | ||
|
|
aade4fd7f2 |
No files matched your search
@@ -47,4 +47,5 @@
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
|
||||
<uses-permission android:name="android.permission.USE_EXACT_ALARM"/>
|
||||
</manifest>
|
||||
+4
-1
@@ -173,6 +173,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
Timer? _alarmTimer;
|
||||
|
||||
Future<void> _scheduleAlarm() async {
|
||||
// Ensure that Android has the correct permissions enabled.
|
||||
final canSchedule = await android?.canScheduleExactNotifications();
|
||||
if (canSchedule != true) {
|
||||
_showSnack('Permissions not yet granted, requesting...');
|
||||
@@ -220,7 +221,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
_showSnack(
|
||||
'Alarm set for ${alarmTime.hour.toString().padLeft(2, '0')}:${alarmTime.minute.toString().padLeft(2, '0')} (app must stay open)',
|
||||
);
|
||||
} else {
|
||||
} else if (Platform.isAndroid) {
|
||||
// Android: use zonedSchedule (works in background)
|
||||
final tzAlarm = tz.TZDateTime.from(alarmTime, tz.local);
|
||||
const androidDetails = AndroidNotificationDetails(
|
||||
@@ -243,6 +244,8 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
UILocalNotificationDateInterpretation.absoluteTime,
|
||||
);
|
||||
_showSnack('Alarm scheduled.');
|
||||
} else {
|
||||
_showSnack('Platform not detected, unsure how to show alarm.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user