最近在做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蓝牙特定机型权限问题(例如小米)相关推荐

  1. C# BLE蓝牙开发之使用Windows.Devices.Bluetooth获取小米体重秤的体重

    目录 前言 准备工作 新建.net Framework 4.6 工程 微软BLE方法介绍 构建代码 如何连接小米体重秤 小米体重秤历史记录解析 结语 前言 最近天天再减肥,每天起床第一件事就是去小米体 ...

  2. ble蓝牙在小米8手机上无法连接 status=133

    问题描述: Android studio平台开发ble蓝牙,小米8真机上测试,在连接设备时,BluetoothGattCallback重写关于连接状态的回调函数onConnectionStateCha ...

  3. 系统性简述蓝牙以及ESP32对BLE蓝牙的使用(一)

    这里写自定义目录标题 1.蓝牙简介 1.1 蓝牙分类 1.2 蓝牙技术 1.3 蓝牙协议框架 2.BLE 低功耗蓝牙协议 2.1 BLE协议栈框架 2.2 Link Layer States 2.2. ...

  4. Android BLE蓝牙详细解读

    代码地址如下: http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能 ...

  5. android蓝牙设置特征属性,Android BLE蓝牙详细解读(二)

    上篇文章主要介绍了关于BLE的一些基础操作,我们能够大概了解到蓝牙操作的一些流程,上文末介绍了本人的一个BLE开源库,支持蓝牙一对多的连接方式,该库封装了蓝牙的开启.扫描.连接.断开.连接超时...一 ...

  6. MIUI12 安卓12刷面具root 理论适合所有小米机型和系统版本 小米10实测 小米11实测

    下面是正式教程 非常简单! 第一步:解bl锁 基本上所有新机型都需要解bl锁才可以做刷机等深度操作,小米直接官网申请即可  但是数据会被全部删除 记得备份 小米有个坑:官方解锁工具只支持usb2.0接 ...

  7. MDK5 nRF BLE(蓝牙低功耗)

    BLE(蓝牙低功耗) 1 什么是蓝牙低功耗? BLE是蓝牙低功耗的简称(Bluetooth Low Energy).BLE技术是低成本.短距离.可互操作的鲁棒性无线技术,工作在免许可的2.4GHz I ...

  8. Android BLE蓝牙踩坑总结

    简介 自从Android-BLE库开源了一段时间以来,越来越多的小伙伴问到了各种各样的关于BLE的奇怪问题,在这里我想跟大家分享一下本人对于Android BLE蓝牙的一些看法和解决方式,避免刚接触的 ...

  9. Android蓝牙开发 — 经典蓝牙BLE蓝牙

    一,前期基础知识储备 1)蓝牙是一种支持设备之间短距离通信的无线电技术(其他还包括红外,WIFI): 支持移动电话.笔记本电脑.无线耳机等设备之间进行信息的交换: Android支持的蓝牙协议栈:Bl ...

最新文章

  1. 【David Silver强化学习公开课】-6:Value Function Approximation
  2. [Vue.js]跨域访问四种解决方法
  3. Clumsy 弱网络环境模拟工具使用介绍
  4. LeetCode 483. 最小好进制(二分查找)
  5. Python高级——with上下文管理器
  6. 大数据技术周报第 003 期
  7. 鸿蒙(HarmonyOS)刷机指南
  8. C++Socket编程总结
  9. Bailian4121 股票买卖【最值】
  10. 【读书笔记】暗时间~
  11. halcon修改程序框字体大小
  12. magic,imagesc,drawnow
  13. 欧姆龙服务器数码管不显示问题,TM1640驱动数码管不显示问题
  14. linux ext3 fsck一定要慎用
  15. Hou的图像显著性计算模型
  16. linux重要的文件操作
  17. 双目活体检测:人证核验一体机
  18. 在maven 官网上下载其他版本
  19. matlab矩阵分块与把分块矩阵还原
  20. 企业微信可以转移员工名下的好友吗?

热门文章

  1. NR/5G - DRX
  2. 【Win 10 应用开发】在后台进行多媒体转码
  3. instr()函数的格式  (俗称:字符查找函数)
  4. 用户画像标签数据开发之组合标签计算
  5. mysql 字段移动平均值_MYSQL简单移动平均值计算
  6. Windows系统安装jdk1.5
  7. Python爬虫,爬取百度小说网评论
  8. 拿下监控,我全靠这个超牛逼的告警管理平台
  9. 高并发场景下backlog详解
  10. IDE(9)——VS系列(9)——如何设置vs2019中显示代码的行号