BLE蓝牙特定机型权限问题(例如小米)
最近在做BLE蓝牙开发时,遇到小米手机无法搜索设备问题,具体报错:
java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
乍一看原来就是两个权限没给,随即在AndroidManifest中给上权限,运行,继续报上述错误!?,随即上网查询资料,可行的解决办法,在MainActivity或者其他合适的Activity中添加权限申请弹框,代码如下:
/*** 解决:无法发现蓝牙设备的问题** 对于发现新设备这个功能, 还需另外两个权限(Android M 以上版本需要显式获取授权,附授权代码):*/private final int ACCESS_LOCATION=1;@SuppressLint("WrongConstant")private void getPermission() {if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {int permissionCheck = 0;permissionCheck = this.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION);permissionCheck += this.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION);if (permissionCheck != PackageManager.PERMISSION_GRANTED) {//未获得权限this.requestPermissions( // 请求授权new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION},ACCESS_LOCATION);// 自定义常量,任意整型}}}/*** 请求权限的结果回调。每次调用 requestpermissions(string[],int)时都会调用此方法。* @param requestCode 传入的请求代码* @param permissions 传入permissions的要求* @param grantResults 相应权限的授予结果:PERMISSION_GRANTED 或 PERMISSION_DENIED*/@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode) {case ACCESS_LOCATION:if (hasAllPermissionGranted(grantResults)) {Log.i(TAG, "onRequestPermissionsResult: 用户允许权限");} else {Log.i(TAG, "onRequestPermissionsResult: 拒绝搜索设备权限");}break;}}private boolean hasAllPermissionGranted(int[] grantResults) {for (int grantResult : grantResults) {if (grantResult == PackageManager.PERMISSION_DENIED) {return false;}}return true;}
然后再添加的Activity中调用getPermission()方法就可以解决了。
BLE蓝牙特定机型权限问题(例如小米)相关推荐
- C# BLE蓝牙开发之使用Windows.Devices.Bluetooth获取小米体重秤的体重
目录 前言 准备工作 新建.net Framework 4.6 工程 微软BLE方法介绍 构建代码 如何连接小米体重秤 小米体重秤历史记录解析 结语 前言 最近天天再减肥,每天起床第一件事就是去小米体 ...
- ble蓝牙在小米8手机上无法连接 status=133
问题描述: Android studio平台开发ble蓝牙,小米8真机上测试,在连接设备时,BluetoothGattCallback重写关于连接状态的回调函数onConnectionStateCha ...
- 系统性简述蓝牙以及ESP32对BLE蓝牙的使用(一)
这里写自定义目录标题 1.蓝牙简介 1.1 蓝牙分类 1.2 蓝牙技术 1.3 蓝牙协议框架 2.BLE 低功耗蓝牙协议 2.1 BLE协议栈框架 2.2 Link Layer States 2.2. ...
- Android BLE蓝牙详细解读
代码地址如下: http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能 ...
- android蓝牙设置特征属性,Android BLE蓝牙详细解读(二)
上篇文章主要介绍了关于BLE的一些基础操作,我们能够大概了解到蓝牙操作的一些流程,上文末介绍了本人的一个BLE开源库,支持蓝牙一对多的连接方式,该库封装了蓝牙的开启.扫描.连接.断开.连接超时...一 ...
- MIUI12 安卓12刷面具root 理论适合所有小米机型和系统版本 小米10实测 小米11实测
下面是正式教程 非常简单! 第一步:解bl锁 基本上所有新机型都需要解bl锁才可以做刷机等深度操作,小米直接官网申请即可 但是数据会被全部删除 记得备份 小米有个坑:官方解锁工具只支持usb2.0接 ...
- MDK5 nRF BLE(蓝牙低功耗)
BLE(蓝牙低功耗) 1 什么是蓝牙低功耗? BLE是蓝牙低功耗的简称(Bluetooth Low Energy).BLE技术是低成本.短距离.可互操作的鲁棒性无线技术,工作在免许可的2.4GHz I ...
- Android BLE蓝牙踩坑总结
简介 自从Android-BLE库开源了一段时间以来,越来越多的小伙伴问到了各种各样的关于BLE的奇怪问题,在这里我想跟大家分享一下本人对于Android BLE蓝牙的一些看法和解决方式,避免刚接触的 ...
- Android蓝牙开发 — 经典蓝牙BLE蓝牙
一,前期基础知识储备 1)蓝牙是一种支持设备之间短距离通信的无线电技术(其他还包括红外,WIFI): 支持移动电话.笔记本电脑.无线耳机等设备之间进行信息的交换: Android支持的蓝牙协议栈:Bl ...
最新文章
- 【David Silver强化学习公开课】-6:Value Function Approximation
- [Vue.js]跨域访问四种解决方法
- Clumsy 弱网络环境模拟工具使用介绍
- LeetCode 483. 最小好进制(二分查找)
- Python高级——with上下文管理器
- 大数据技术周报第 003 期
- 鸿蒙(HarmonyOS)刷机指南
- C++Socket编程总结
- Bailian4121 股票买卖【最值】
- 【读书笔记】暗时间~
- halcon修改程序框字体大小
- magic,imagesc,drawnow
- 欧姆龙服务器数码管不显示问题,TM1640驱动数码管不显示问题
- linux ext3 fsck一定要慎用
- Hou的图像显著性计算模型
- linux重要的文件操作
- 双目活体检测:人证核验一体机
- 在maven 官网上下载其他版本
- matlab矩阵分块与把分块矩阵还原
- 企业微信可以转移员工名下的好友吗?