Android开发中遇到mBluetoothAdapter.startDiscovery()搜索不到任何蓝牙设备
最近在更新开发公司的APP应用程序,版本已经都开发完成了,准备做发布的时候。突然我们的一个程序员反馈,在他的手机上测试,APP程序无法搜索到任何的蓝牙设备。于是我就懵逼了,因为APP程序已经在Android 6.0,9.0的几台真机上都测试通过了呀,都能够正常搜索到需要连接的蓝牙设备,而且数据通信和控制功能都非常正常。对方的手机系统为HomnnoyOS 2.0.1,难道华为的鸿蒙系统存在不兼容的情况。
拿对方的手机,连接上开发者模式,最终发现系统跑到mBluetoothAdapter.startDiscovery()之后,就没有接收到系统的蓝牙广播消息,所有就无法更新listview来显示搜索到的蓝牙设备。
经过多方查看,最终得到的结论是在Android 10以上的版本,蓝牙设备搜索需要开启定位功能。结果在原来的手机上,开启了定位功能,果然可以搜索到久违的蓝牙设备了,并且可以正常连接和完成系统功能。
百度上没有搜索到很有用的中文相关内容,最后Google在Stackoverflow上面找到一篇比较接地气的内容,解决了我所遇到的问题,非常感谢这位楼主和提供正确信息的高手。
https://stackoverflow.com/questions/61792203/bluetooth-startdiscovery-is-not-working-on-android-10
同时也给APP增加了检查定位功能是否开启的功能,如果为开启,就跳转到对应的设置界面进行定位功能的开启,代码如下:
private void openGPSSettings() {if (!checkGPSIsOpen() && Build.VERSION.SDK_INT >= 29) {//没有打开则弹出对话框AlertDialog.Builder dialog = new AlertDialog.Builder(this);dialog.setTitle("提示");dialog.setMessage("蓝牙连接功能需要开启定位辅助功能");dialog.setCancelable(false);//不能用返回关闭// 拒绝, 退出应用dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Activity activity=new Activity();System.exit(0);}});dialog.setPositiveButton("开启定位",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//跳转GPS设置界面Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);startActivity(intent);}});dialog.show();}}
Android开发中遇到mBluetoothAdapter.startDiscovery()搜索不到任何蓝牙设备相关推荐
- 史上最全Android开发中100%会用到的开源框架整理(1/5)
其实这个开源框架整理很久了,只是一直放在有道云笔记里面,笔者还有很多写得文章都放在有道云笔记里面,有时间都好好整理一下放出来,本篇文章也会不定期更新,由于整理的开源框架分类都有200多个,所有这次只将 ...
- Android开发中常见的设计模式
对于开发人员来说,设计模式有时候就是一道坎,但是设计模式又非常有用,过了这道坎,它可以让你水平提高一个档次.而在android开发中,必要的了解一些设计模式又是非常有必要的.对于想系统的学习设计模式的 ...
- Android开发中的日常积累
欢迎Star,Fork https://github.com/lizhangqu/CoreLink 里面记录了开发过程中有用的东西,欢迎补充,不定时更新. Android 性能优化 Android内存 ...
- Android 开发中的日常积累
Android 性能优化 Android性能优化视频,文档以及工具 胡凯-性能优化 Android最佳性能实践(1):合理管理内存 Android最佳性能实践(2):分析内存的使用情况 Android ...
- SQLite数据库及在Android开发中的基本使用
SQLite数据库及在Android开发中的基本使用 SQLite数据库的特点 轻量级数据库,无需搭建服务器. SQLite环境配置 这里提供从官网下载的方法,如果有Android Studio的项目 ...
- Android开发中应避免的重大错误
by Varun Barad 由Varun Barad Android开发中应避免的重大错误 (Critical mistakes to avoid in Android development) A ...
- android 4.4 禁止下拉,Android开发中禁止下拉式的实现技巧
我们开发项目的时候,经常会看到禁止的情况,而Android开发中并没有直接调用的接口,下面是爱站技术频道小编就给大家介绍的Android开发中禁止下拉式的实现技巧,希望网友们喜欢! 分享给大家供大家参 ...
- Android开发中使用七牛云存储进行图片上传下载
Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...
- 5 个 Android 开发中比较常见的内存泄漏问题及解决办法
Android开发中,内存泄漏是比较常见的问题,有过一些Android编程经历的童鞋应该都遇到过,但为什么会出现内存泄漏呢?内存泄漏又有什么影响呢? 在Android程序开发中,当一个对象已经不需要再 ...
最新文章
- mlxtend对sklearn进行扩展
- CNN模型 INT8 量化实现方式(一)
- timestamp列的有关知识
- 第16课:动手实战中文句法依存分析
- ASP.NET Core 6.0对热重载的支持
- 使用openocd调试Linux内核,openocd安装与调试
- Node.js webpack
- STM32工作笔记0024---什么是电流,什么是电压,什么是电阻,电阻的作用
- 用CSS3实现图像风格
- 【转】“正由另一进程使用,因此该进程无法访问该文件”的问题解决方法
- 拓端tecdat|重庆住房租赁市场现状分析:解读出租房市场的数据密码
- java+整合handwrite_cnn handwrite使用原生的TensorFlow进行预测
- hive sql 正则表达式
- web前端 html+css+javascript网页设计实例 家乡网站制作
- java中前加加++和后加加++的详解
- 【工程光学】平面与平面系统
- Java模拟醉汉行走问题_醉汉随机行走/随机漫步问题(Random Walk Drunk Python)
- vs2019配置glfw、glad等环境
- python模拟手机app签到_利用 Python + Selenium 实现自动登陆签到
- 图欧学习资源库 https://tuostudy.com/
热门文章
- 【MATLAB】delete、clf、cla、close、closereq 删除对象用法
- mysql in 排序 无数据混乱_解决 mysql in 查询排序问题
- HTML5+CSS、CSS3基础知识点总结
- 【论文翻译】2020.8 清华大学AI课题组——大型中文短文本对话数据集(A Large-Scale Chinese Short-Text Conversation Dataset)
- 联想服务器s650装系统,详细的联想s650 root教程和方法
- L1-083 谁能进图书馆 C语言
- 基于iBeacon技术的智慧商铺解决方案
- 177本名著浓缩成了177句话!!!
- 名帖321 启功 行书《对联选集》
- ios 报表 表格 UICollectionViewLayout