Android6.0的蓝牙权限问题
来源:互联网 发布:网络销售计划和总结 编辑:程序博客网 时间:2024/06/06 01:49
#Android6.0的蓝牙权限问题
在Adroid6.0以前,申请权限只需在manifest文件下申请相应的权限即可,但是Android6.0后,像一些危险权限,比如操作SD卡的写入,相机,录音等,是需要在java代码中去申请的。
本篇文章,主要是讲Android6.0系统中扫描蓝牙的权限的申请。
首先,我们需要检查当前手机的系统版本,检查系统版本的原因,显而易见,如果是系统6.0及以上的,需要采用新的授权方法。
if(Build.VERSION.SDK_INT>=23){ //判断是否有权限 if (ContextCompat.checkSelfPermission(DeviceListActivity.this,Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED) { //请求权限 ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},REQUEST_ACCESS_COARSE_LOCATION);//向用户解释,为什么要申请该权限if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_CONTACTS)) {Toast.makeText(DeviceListActivity.this,"shouldShowRequestPermissionRationale", Toast.LENGTH_SHORT).show(); } }}
回调方式如下;
@Overridepublic void onRequestPermissionsResult(int requestCode,String[] permissions, int[] grantResults) { // TODO Auto-generated method stub if (requestCode == REQUEST_ACCESS_COARSE_LOCATION) { if (permissions[0] .equals(Manifest.permission.ACCESS_COARSE_LOCATION) && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 用户同意使用该权限 } else { // 用户不同意,向用户展示该权限作用 if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) { //showTipDialog("用来扫描附件蓝牙设备的权限,请手动开启!"); return; } } } }
还有当前activity需要实现OnRequestPermissionsResultCallback接口;
当然也需要在manifest中加上相应的权限申明:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Android6.0其他的一些危险权限申请和上面的方式类似。
更多安卓相关信息,请扫码关注微信公众号:lifeAndroid
0 0
- Android6.0的蓝牙权限问题
- Android6.0-蓝牙权限问题
- Android6.0的权限问题
- Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析
- Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析
- android6.0权限问题
- Android6.0权限问题
- Android6.0权限问题
- android6.0权限问题
- Android6.0权限问题
- Android6.0权限问题
- android6.0权限问题
- Android6.0权限问题
- Android6.0权限问题
- 关于android6.0权限的问题
- android6.0以上的权限问题
- Android6.0蓝牙权限申请及开启蓝牙
- Android6.0以上权限获取权限的问题
- Windows使用C++获取网卡信息
- JavaScript之最佳实践(可维护性、性能优化)
- checklistbox多选取value值的问题
- tee命令用法
- Hibernate的注解
- Android6.0的蓝牙权限问题
- 五年技术成长之后的技术学习经验总结j
- 基于STM32的TFT_LCD&TOUCH设计选型
- Android 自定义 Switch 控件外观
- shell脚本如何获取当前时间
- Diameter of Binary Tree
- Ionic – Playing a media file with ngCordova’s $cordovaMedia
- Tensorflow CNN(两层卷积+全连接+softmax)
- 【Unity3D / Physical】快速处理碰撞事件的方法