I am trying to build an offline reminder android application using SQLite database. For notification, I use the alaram manager to call broadcast receiver, but unfortunately, receiver not triggered, So I am not able to get reminder notification in higher version 6.0 and above
My manifest include:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
And
enter code here
<receiver
android:name=".Util.BroadcastManager"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.NOTIFY" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
<!--
<action android:name="ALARM" />
<action android:name = "android.hardware.usb.action.USB_STATE" />
<category android:name="android.intent.category.APP_CALENDAR" />
-->
</intent-filter>
</receiver>
Alarm Manager Called as:
if (alarm) {
Intent itAlarm = new Intent("ALARM");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, itAlarm, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 3);
AlarmManager alarme = (AlarmManager) getSystemService(ALARM_SERVICE);
int interval = 60000;
alarme.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
}else {
Intent alarmIntent = new Intent(MainActivity.this, BroadcastManager.class);
alarmIntent.setAction(Intent.ACTION_MAIN);
alarmIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int interval = 60000;
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
}
br = new BroadcastManager();
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
this.registerReceiver(br, filter);