天天看點

Android擷取通知權限是否打開,并跳轉通知設定頁面

1.判斷是否有通知欄權限

NotificationManagerCompat.from(this).areNotificationsEnabled();

2.打開對應的應用通知設定頁面

Intent localIntent = new Intent();
try {
    //直接跳轉到應用通知設定的代碼:
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {//8.0及以上
        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
        localIntent.setData(Uri.fromParts("package", getPackageName(), null));
    } else{//5.0以上到8.0以下
        localIntent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
        localIntent.putExtra("app_package", getPackageName());
        localIntent.putExtra("app_uid", getApplicationInfo().uid);
    }
    startActivity(localIntent);
}catch (Exception e){
    localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
    localIntent.setData(Uri.fromParts("package", BuildConfig.APPLICATION_ID, null));
    if (localIntent.resolveActivity(IXApplication.getIntance().getPackageManager()) != null) {
        startActivity(localIntent);
    }
}