江西建设门户网站,海外贸易平台,租房信息网站建设,h5响应式网站是什么意思本人使用小米手机#xff0c;打开qq或者微信的时候#xff0c;某个权限拒绝的话#xff0c;会提示你开启#xff0c;点击开启会跳转到app的权限设置界面#xff0c;当然了#xff0c;这是国内系统深层定制的原因#xff0c;也就是说这个界面原声的android没有的#xf…本人使用小米手机打开qq或者微信的时候某个权限拒绝的话会提示你开启点击开启会跳转到app的权限设置界面当然了这是国内系统深层定制的原因也就是说这个界面原声的android没有的这里以小米和魅族作为示例讲解如何让用户手动打开权限当然了如果是原声的android就让他跳转到应用的详情设置页面(有点坑因为普通用户还是不知道怎么整)。参考了很多零零碎碎的东西网址已经找不到了。。。。。。ok第一步是跳转到系统的界面下面基本上可以从9开始考虑了可以简化。String SCHEME package;//调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.1及之前版本)final String APP_PKG_NAME_21 com.android.settings.ApplicationPkgName;//调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.2)final String APP_PKG_NAME_22 pkg;//InstalledAppDetails所在包名final String APP_DETAILS_PACKAGE_NAME com.android.settings;//InstalledAppDetails类名final String APP_DETAILS_CLASS_NAME com.android.settings.InstalledAppDetails;Intent intent new Intent();final int apiLevel Build.VERSION.SDK_INT;if (apiLevel 9) { // 2.3(ApiLevel 9)以上使用SDK提供的接口intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);Uri uri Uri.fromParts(SCHEME, getPackageName(), null);intent.setData(uri);} else { // 2.3以下使用非公开的接口(查看InstalledAppDetails源码)// 2.2和2.1中InstalledAppDetails使用的APP_PKG_NAME不同。final String appPkgName (apiLevel 8 ? APP_PKG_NAME_22: APP_PKG_NAME_21);intent.setAction(Intent.ACTION_VIEW);intent.setClassName(APP_DETAILS_PACKAGE_NAME,APP_DETAILS_CLASS_NAME);intent.putExtra(appPkgName, getPackageName());}intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);第二个miui,首先你得判断是miui亲自测试,MIUI7稳定版,MIUI8开发板本可行工具类下面会提供下载if (CheckPhoneSystemUtils.isMIUI()) {MLog.i(产品/硬件的制造商小米:);intent.setAction(miui.intent.action.APP_PERM_EDITOR);intent.setClassName(com.miui.securitycenter, com.miui.permcenter.permissions.AppPermissionsEditorActivity);intent.putExtra(extra_pkgname, getPackageName());intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);try {startActivity(intent);} catch (Exception e) {e.printStackTrace();Toast.makeText(MediaRecoderService.this, 只有MIUI才可以设置哦, Toast.LENGTH_SHORT).show();}}第三个,flyme(由于没有flyme机子)采用的云手机测试的else if (CheckPhoneSystemUtils.isFlyme()) {intent.setAction(com.meizu.safe.security.SHOW_APPSEC);intent.addCategory(Intent.CATEGORY_DEFAULT);intent.putExtra(packageName, getPackageName());intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);try {startActivity(intent);} catch (Exception e) {e.printStackTrace();Toast.makeText(MediaRecoderService.this, 只有Flyme才可以设置哦, Toast.LENGTH_SHORT).show();}}下面是工具类:BuildPropertiespublic class BuildProperties {private final Properties properties;private BuildProperties() throws IOException {properties new Properties();properties.load(new FileInputStream(new File(Environment.getRootDirectory(), build.prop)));}public boolean containsKey(final Object key) {return properties.containsKey(key);}public boolean containsValue(final Object value) {return properties.containsValue(value);}public Set entrySet() {return properties.entrySet();}public String getProperty(final String name) {return properties.getProperty(name);}public String getProperty(final String name, final String defaultValue) {return properties.getProperty(name, defaultValue);}public boolean isEmpty() {return properties.isEmpty();}public Enumeration keys() {return properties.keys();}public Set keySet() {return properties.keySet();}public int size() {return properties.size();}public Collection values() {return properties.values();}public static BuildProperties newInstance() throws IOException {return new BuildProperties();}CheckPhoneSystemUtilsprivate static final String KEY_MIUI_VERSION_CODE ro.miui.ui.version.code;private static final String KEY_MIUI_VERSION_NAME ro.miui.ui.version.name;private static final String KEY_MIUI_INTERNAL_STORAGE ro.miui.internal.storage;/*** 检测MIUI** return*/public static boolean isMIUI() {try {final BuildProperties prop BuildProperties.newInstance();return prop.getProperty(KEY_MIUI_VERSION_CODE, null) ! null || prop.getProperty(KEY_MIUI_VERSION_NAME, null) ! null || prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null) ! null;} catch (final IOException e) {return false;}}/*** 检测Flyme** return*/public static boolean isFlyme() {try { // Invoke Build.hasSmartBar()final Method method Build.class.getMethod(hasSmartBar);return method ! null;} catch (final Exception e) {return false;}}以上这篇Android 6.0以上权限拒绝打开权限设置界面的解决方法就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持脚本之家。