您的位置:首页 > 其它

获取通知栏权限是否开启和进入系统设置界面,应用详情

2018-03-02 10:46 671 查看
1.获取通知栏权限是否开启:    /** * 获取通知栏权限是否开启 * */    public class NotificationsUtils {         private static final String CHECK_OP_NO_THROW = "checkOpNoThrow";         private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION";         @SuppressLint("NewApi") public static boolean isNotificationEnabled(Context context) {              AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);              ApplicationInfo appInfo = context.getApplicationInfo();             String pkg = context.getApplicationContext().getPackageName();             int uid = appInfo.uid;             Class appOpsClass = null;             /* Context.APP_OPS_MANAGER */             try {                 appOpsClass = Class.forName(AppOpsManager.class.getName());                 Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class);              Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);                 int value = (Integer) opPostNotificationValue.get(Integer.class);                 return ((Integer) checkOpNoThrowMethod.invoke(mAppOps, value, uid, pkg) == AppOpsManager.MODE_ALLOWED);               } catch (ClassNotFoundException e) {                    e.printStackTrace();               } catch (NoSuchMethodException e) {                    e.printStackTrace();               } catch (NoSuchFieldException e) {                    e.printStackTrace();               } catch (InvocationTargetException e) {                    e.printStackTrace();               } catch (IllegalAccessException e) {                      e.printStackTrace();               }          return false;          }    }
2.进入系统设置界面    protected void requestPermission(int requestCode) {       // TODO Auto-generated method stub        // 6.0以上系统才可以判断权限        // 进入设置系统应用权限界面    Intent intent = new Intent(Settings.ACTION_SETTINGS);    startActivity(intent);    }3.进入应用详情,可以通过应用详情跳转到权限界面(6.0系统测试可用)    private void getAppDetailSettingIntent(Context context) {        Intent localIntent = new Intent();        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);         if (Build.VERSION.SDK_INT >= 9) {            localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");            localIntent.setData(Uri.fromParts("package", getPackageName(), null));        } else if (Build.VERSION.SDK_INT <= 8) {            localIntent.setAction(Intent.ACTION_VIEW);            localIntent
9d9e
.setClassName("com.android.settings","com.android.settings.InstalledAppDetails");            localIntent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());            }        startActivity(localIntent);     }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: