1.业务逻辑:
通知相关权限包括:允许通知,显示桌面应用角标,悬浮通知,锁屏通知,允许发声,允许振动,允许呼吸灯闪烁。
其中“允许通知”权限是原生接口,默认打开,其余权限均由MIUI实现,默认只有“允许振动”权限打开。
这里要解释下“悬浮通知”和“锁屏通知”权限,并不是打开这两个权限开关后,应用发的通知就会悬浮/在锁屏显示,而是应用发的通知具备了悬浮/在锁屏显示的能力,至于通知最终能否悬浮/在锁屏显示,还需要判定其他的条件。
2.常见问题
Q:如何判断应用/Channel的“允许通知”权限是否打开?
public boolean isNotificationChannelEnabled(Context context, @Nullable String channelId) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (!TextUtils.isEmpty(channelId)) {
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel channel = manager.getNotificationChannel(channelId);
return channel.getImportance() != NotificationManager.IMPORTANCE_NONE;