最近,我发现手机的6.0权限在小米手机上存在问题,我在网上搜了很多的代码,都没有解决这个问题,所以这里记录一下自己的android 6.0权限的解决代码,如果有问题,大家可以在网上自己在找找代码去解决,不过,我发现大部分是一样的。

1.通过设置build.gradle文件来适配android 6.0.

这个很简单,只要把targetSdkVersion设置为23一下就可以,这是告诉手机这个app不支持android 6.0动态权限,所以手机会在安装时给予app所需权限。不过也存在问题,因为这样无法使用到android 6.0之后的新的特性。所以这个解决代码不是很好

compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
  applicationId "com.whoislcj.rxpermissions"
  minSdkVersion 15
  targetSdkVersion 22
  versionCode 1
  versionName "1.0"
}

2.直接在代码申请动态权限。

从Android 6.0(API23)开始,当app运行时用户授予用户的权限,而不是在安装程序的时候。

系统权限分为2种,分别为normal和dangerous.

  • Normal permission:对于用户隐私没有危险的,在清单文件中申请就可以直接授权。

  • Dangerous permission:app需要访问用户的隐私信息等,即使在清单文件注册,也需要在运行是通过用户授权。

检查权限(check permission)

在android6.0及以上的sdk提供了一个检查权限的方法:ContextCompat.checkSelfPermission()。

int permission = ContextCompat.checkSelfPermission(MainActivity.this,
        Manifest.permission.RECORD_AUDIO);

if (permission == PackageManager.PERMISSION_GRANTED) {
    //表示已经授权
}
//PackageManager.PERMISSION_DENIED--->表示权限被否认了

如果在Activity中申请权限可以的调用:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { int permission = checkSelfPermission(Manifest.permission.RECORD_AUDIO);
}

请求权限

在Android 6.0及以上,如果检查没有权限,需要主动请求权限。在请求权限是会弹出一个对话框提示用户,是否授权。
请求权限的方法:requestPermissions()。在请求权限后会有一个回调方法onRequestPermissionsResult()。

ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.RECORD_AUDIO}, 1);

//或者 在Activity的方法调用
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO},1);
}

/** * 参数1:requestCode-->是requestPermissions()方法传递过来的请求码。 * 参数2:permissions-->是requestPermissions()方法传递过来的需要申请权限 * 参数3:grantResults-->是申请权限后,系统返回的结果,PackageManager.PERMISSION_GRANTED表示授权成功,PackageManager.PERMISSION_DENIED表示授权失败。 * grantResults和permissions是一一对应的 */
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

这里主要是参考了网上别人的博客,觉得写得很好,所以直接来用,自己也不一定写得比别人明白。动态申请主要是使用ContextCompat.checkSelfPermission(Activity,权限);来检查权限,然后对应没有的权限,使用  ActivityCompat.requestPermissions(Activity, 权限数组, 请求码);进行动态申请。

这个解决代码基本实现了android的动态权限,不过我发现在小米 的note4会不停出现提示需要权限的问题。app每次启动都会提示需要录像,照相等权限,这个可能是小米手机的设置问题,我怎么也解决不了,所以大家用这个代码时必须注意小米 note4是否也存在一打开app就提示需要权限得 问题。

android 6.0权限问题就这样将完了。

就这么简单。



android 6.0动态权限问题相关推荐

  1. android 6.0权限库,Android 6.0动态权限适配

    前言 最近项目发现比较多的问题是关于Android 6.0的问题,APP安装之后,在Android 6.0之后的系统,点击直接奔溃打不开,这是为什么昵?这就是Android 6.0以上的系统引入运行时 ...

  2. Android 6.0动态权限申请

    Android 6.0动态权限申请 特别感谢: https://www.jianshu.com/p/2fe4fb3e8ce0 本文是在该文的基础上添加了类似自己的读后感才完成的. 我并不希望成为白求恩 ...

  3. Android 7.0动态权限大总结

    本文讲的是Android 7.0动态权限大总结,应公司项目需求,做了下Android 7.0适配.对于我们程序员,适配7.0主要就是对手机本地文件的Uri做转换处理.注意红色字体,意思也就是说对于ht ...

  4. [Android] Android 6.0 动态权限申请看完就会写

    Android 6.0 动态权限申请看完就会写 文章目录 Android 6.0 动态权限申请看完就会写 1. 起 2. 权限 3. 四个方法 4. 使用 5. 总结 1. 起 Android 的动态 ...

  5. Android 6.0动态权限(转)

    转自:http://blog.csdn.net/uana_777/article/details/54136255 Part One 权限区分  Android 6.0 为了保护用户隐私,将一些权限的 ...

  6. Android 6.0 动态权限实战(一)------ Nexus7二代(WIFI版)4.4升级6.0-附带纯净刷机ROM福利!

    最近一直忙于一个百万+客户的app客户端与Android4.4定制车机和车载的系统订单,都好久没有更新博客了, 今天一上来就 给大家发一个福利!哈哈,不要谢我,请叫我雷锋!这个博客我将分1-3篇来介绍 ...

  7. android 6.0动态权限的申请

    一下9组权限需要动态申请//通讯录(读.写.查询)group:android.permission-group.CONTACTSpermission:android.permission.WRITE_ ...

  8. Android 6.0 动态权限申请

    1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...

  9. Android 6.0: 动态权限管理的解决方案

    Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应 ...

最新文章

  1. 写了个牛逼的日志切面,甩锅更方便了!
  2. 在centos上通过yum直接安装最新版gcc和开发工具
  3. php用ajaxs上传图片_php+ajax实现图片文件上传功能实例
  4. 与图像处理、图像识别有关的学术机构或会议
  5. 实战SSM_O2O商铺_35【商品】商品编辑之View层的实现
  6. 几本对于笔试和面试有用的书
  7. linux 安装 php 5.2_Linux下安装PHP5.5
  8. app 缓存html页面,HTML5本地存储VS App缓存离线网站浏览
  9. 20+个很棒的Android开源项目
  10. HDOJ--1875--畅通工程再续
  11. 郑州大学远程教育学院C语言程序设计题库(二)
  12. python 超像素分割
  13. 【Ubuntu破解UltraEdit】破解UltraEdit
  14. emoji.php,简单的处理emoji的PHP类库
  15. 如何通俗的解释全微分?
  16. 8月书讯丨11本新上好书速览(计算机+经管)
  17. 商城app被攻击了之后我们应该怎么处理?
  18. 手游测试常见10个坑及填坑建议
  19. 漫谈程序员系列:怎么告别“混日子”
  20. C compiler cannot create executables问题

热门文章

  1. 集成学习原理小结(转载)
  2. 都是套路:高并发系统的降级特技
  3. Linux2017Linux架构师!
  4. Office2016打开doc字符间距过小
  5. 关于.net的.dll.refresh文件
  6. tomcat各目录(文件)作用
  7. [Effective C++ --029]为“异常安全”而努力是值得的
  8. as与c++的反射机制对比
  9. 开始的一些知识和概念
  10. PowerDesigner pdm生成Access的方法