在 Android 版本 6.0 以上中无法通过广播接收器收到通知



我正在尝试使用SQLite数据库构建一个离线提醒Android应用程序。对于通知,我使用alaram管理器调用广播接收器,但不幸的是,接收器没有触发,所以我无法在更高版本6.0及更高版本中收到提醒通知

我的清单包括:

<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" />

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>

警报管理器调用为:

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);

尝试使用通知库制作适用于每个 API 的自定义通知。

警报器通知

这是一个自定义库

implementation "com.tapadoo.android:alerter:5.0.0"

这是链接

我在当前的项目中使用它,并且运行良好。