最近在更新开发公司的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()搜索不到任何蓝牙设备相关推荐

  1. 史上最全Android开发中100%会用到的开源框架整理(1/5)

    其实这个开源框架整理很久了,只是一直放在有道云笔记里面,笔者还有很多写得文章都放在有道云笔记里面,有时间都好好整理一下放出来,本篇文章也会不定期更新,由于整理的开源框架分类都有200多个,所有这次只将 ...

  2. Android开发中常见的设计模式

    对于开发人员来说,设计模式有时候就是一道坎,但是设计模式又非常有用,过了这道坎,它可以让你水平提高一个档次.而在android开发中,必要的了解一些设计模式又是非常有必要的.对于想系统的学习设计模式的 ...

  3. Android开发中的日常积累

    欢迎Star,Fork https://github.com/lizhangqu/CoreLink 里面记录了开发过程中有用的东西,欢迎补充,不定时更新. Android 性能优化 Android内存 ...

  4. Android 开发中的日常积累

    Android 性能优化 Android性能优化视频,文档以及工具 胡凯-性能优化 Android最佳性能实践(1):合理管理内存 Android最佳性能实践(2):分析内存的使用情况 Android ...

  5. SQLite数据库及在Android开发中的基本使用

    SQLite数据库及在Android开发中的基本使用 SQLite数据库的特点 轻量级数据库,无需搭建服务器. SQLite环境配置 这里提供从官网下载的方法,如果有Android Studio的项目 ...

  6. Android开发中应避免的重大错误

    by Varun Barad 由Varun Barad Android开发中应避免的重大错误 (Critical mistakes to avoid in Android development) A ...

  7. android 4.4 禁止下拉,Android开发中禁止下拉式的实现技巧

    我们开发项目的时候,经常会看到禁止的情况,而Android开发中并没有直接调用的接口,下面是爱站技术频道小编就给大家介绍的Android开发中禁止下拉式的实现技巧,希望网友们喜欢! 分享给大家供大家参 ...

  8. Android开发中使用七牛云存储进行图片上传下载

    Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...

  9. 5 个 Android 开发中比较常见的内存泄漏问题及解决办法

    Android开发中,内存泄漏是比较常见的问题,有过一些Android编程经历的童鞋应该都遇到过,但为什么会出现内存泄漏呢?内存泄漏又有什么影响呢? 在Android程序开发中,当一个对象已经不需要再 ...

最新文章

  1. mlxtend对sklearn进行扩展
  2. CNN模型 INT8 量化实现方式(一)
  3. timestamp列的有关知识
  4. 第16课:动手实战中文句法依存分析
  5. ASP.NET Core 6.0对热重载的支持
  6. 使用openocd调试Linux内核,openocd安装与调试
  7. Node.js webpack
  8. STM32工作笔记0024---什么是电流,什么是电压,什么是电阻,电阻的作用
  9. 用CSS3实现图像风格
  10. 【转】“正由另一进程使用,因此该进程无法访问该文件”的问题解决方法
  11. 拓端tecdat|重庆住房租赁市场现状分析:解读出租房市场的数据密码
  12. java+整合handwrite_cnn handwrite使用原生的TensorFlow进行预测
  13. hive sql 正则表达式
  14. web前端 html+css+javascript网页设计实例 家乡网站制作
  15. java中前加加++和后加加++的详解
  16. 【工程光学】平面与平面系统
  17. Java模拟醉汉行走问题_醉汉随机行走/随机漫步问题(Random Walk Drunk Python)
  18. vs2019配置glfw、glad等环境
  19. python模拟手机app签到_利用 Python + Selenium 实现自动登陆签到
  20. 图欧学习资源库 https://tuostudy.com/

热门文章

  1. 【MATLAB】delete、clf、cla、close、closereq 删除对象用法
  2. mysql in 排序 无数据混乱_解决 mysql in 查询排序问题
  3. HTML5+CSS、CSS3基础知识点总结
  4. 【论文翻译】2020.8 清华大学AI课题组——大型中文短文本对话数据集(A Large-Scale Chinese Short-Text Conversation Dataset)
  5. 联想服务器s650装系统,详细的联想s650 root教程和方法
  6. L1-083 谁能进图书馆 C语言
  7. 基于iBeacon技术的智慧商铺解决方案
  8. 177本名著浓缩成了177句话!!!
  9. 名帖321 启功 行书《对联选集》
  10. ios 报表 表格 UICollectionViewLayout