zoukankan      html  css  js  c++  java
  • android app通知栏权限状态判断及跳转状态栏设置页面

    import android.app.NotificationManager;
    import android.content.Context;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Build;
    import android.provider.Settings;
    import android.support.v4.app.NotificationManagerCompat;
    
    /**
     * Created by chenxiangxiang on 2019/1/16.
     */
    
    public class Utils {
    
        public static boolean isPermissionOpen(Context context) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                return NotificationManagerCompat.from(context).getImportance() != NotificationManager.IMPORTANCE_NONE;
            }
            return NotificationManagerCompat.from(context).areNotificationsEnabled();
        }
    
        public static void openPermissionSetting(Context context) {
            try {
                Intent localIntent = new Intent();
                localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                //直接跳转到应用通知设置的代码:
                if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    localIntent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
                    localIntent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
                    context.startActivity(localIntent);
                    return;
                }
                if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    localIntent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
                    localIntent.putExtra("app_package", context.getPackageName());
                    localIntent.putExtra("app_uid", context.getApplicationInfo().uid);
                    context.startActivity(localIntent);
                    return;
                }
                if (android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
                    localIntent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                    localIntent.addCategory(Intent.CATEGORY_DEFAULT);
                    localIntent.setData(Uri.parse("package:" + context.getPackageName()));
                    context.startActivity(localIntent);
                    return;
                }
    
                //4.4以下没有从app跳转到应用通知设置页面的Action,可考虑跳转到应用详情页面,
    
                if (Build.VERSION.SDK_INT >= 9) {
                    localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
                    localIntent.setData(Uri.fromParts("package", context.getPackageName(), null));
                    context.startActivity(localIntent);
                    return;
                }
    
                localIntent.setAction(Intent.ACTION_VIEW);
                localIntent.setClassName("com.android.settings", "com.android.setting.InstalledAppDetails");
                localIntent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName());
    
    
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println(" cxx   pushPermission 有问题");
            }
        }
    }
  • 相关阅读:
    NOIP模拟题——小L的珍珠挂饰
    NOIP模拟题——小L的牛栏
    NOIP模拟题——小L的二叉树
    NOIP模拟题——愉快的logo设计
    NOIP模拟题——复制&粘贴2
    NOIP模拟题——Landscaping
    poj3264
    RMQ_ST算法
    Count Colour_poj2777(线段树+位)
    I Hate It(hdu1754)(线段树区间最大值)
  • 原文地址:https://www.cnblogs.com/shoneworn/p/10276980.html
Copyright © 2011-2022 走看看