在应用开发中有时会碰到操作蓝牙设备的需求,这时就需要获取手机已连接的蓝牙设备,其中"已连接"是广泛含义,其实蓝牙设备分为可链接设备(比如:蓝牙音箱 蓝牙耳机) 和可绑定设备(比如:手机 蓝牙自拍杆 蓝牙手表 蓝牙键盘等设备) 其中的区别就是connected状态,用int表示其区别共有三个值 10表示无绑定也无链接  11表示绑定 12表示链接。

如果通过标准协议api获取已连接的设备由于其实现机制返回结果会比较慢,可通过如下反射方式来获取:

//获取已连接的蓝牙设备

private void getConnectedBtDevice(){

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();

ClassbluetoothAdapterClass = BluetoothAdapter.class;//得到BluetoothAdapter的Class对象

try {

//得到连接状态的方法

Method method = bluetoothAdapterClass.getDeclaredMethod("getConnectionState", (Class[]) null);

//打开权限

method.setAccessible(true);

int state = (int) method.invoke(adapter, (Object[]) null);

if(state == BluetoothAdapter.STATE_CONNECTED){

Log.i("BLUETOOTH","BluetoothAdapter.STATE_CONNECTED");

Setdevices = adapter.getBondedDevices(); //集合里面包括已绑定的设备和已连接的设备

Log.i("BLUETOOTH","devices:"+devices.size());

for(BluetoothDevice device : devices){

Method isConnectedMethod = BluetoothDevice.class.getDeclaredMethod("isConnected", (Class[]) null);

method.setAccessible(true);

boolean isConnected = (boolean) isConnectedMethod.invoke(device, (Object[]) null);

if(isConnected){ //根据状态来区分是已连接的还是已绑定的,isConnected为true表示是已连接状态。

Log.i("BLUETOOTH-dh","connected:"+device.getName());

//deviceList.add(device);

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

android 获取手机蓝牙是否与其他设备蓝牙配对连接成功,android开发获取手机已连接的蓝牙设备(包括已链接的设备和已经配对绑定的设备)...相关推荐

  1. 苹果11蓝牙配对不成功怎么办_如果iphone11无法连接到蓝牙耳机怎么办

    当一些小伙伴使用新的iPhone11连接蓝牙耳机时,他们不知道为什么他们不能一直连接,这非常伤脑筋.这是什么?别担心,今天的3DM迷你编辑器为您带来了详细的解决方案.我相信这一定会解决你的问题. ip ...

  2. win10打开蓝牙_双系统共用蓝牙键鼠(win10+macOS)

    双系统苦逼的蓝牙设备连接问题 在使用双系统的时候,相信大家都遇到过一个问题:每次从一个系统启动到另外一个系统,蓝牙键鼠一直得重新连接,特别麻烦!虽然问题不大,但是总觉得心里有疙瘩,每次都要耽误不少时间 ...

  3. arduino(19 ):使用ESP32连接 PS3 蓝牙手柄,需要在windows 上先连接成功,然后在修改mac地址,才可以连接成功,但是目前正在测试中,需要在windows上配对成功。

    目录 前言 1,关于 Arduino 2,使用 Arduino 3,arduino上连接 4,Linux 5,总结 前言 相关arduino 全部分类: https://blog.csdn.net/f ...

  4. win8连接wifi成功但受限制_必看丨“格力+”手机APP,智能WiFi连接教程。(含AI语音连接教程)...

    早上出门忘关空调回家就想感受惬意凉爽格力智能WIFI空调内置WIFI智能模块只需安装格力+APP即可轻松实现远程操作人在远方,家在身边."格力+"APP连接教程指引(视频)准备工作 ...

  5. 蓝牙透传实验_蓝牙模块主机与从机透传

    这里面只介绍主机的使用,因为从机默认就是透传模式 主从蓝牙模块通信是指两个蓝牙模块互相通信, 一个为主机, 一个为从机, 它们相互之间通 信,第一个模块为从机模块,第二个模块是主机模块 第一步 将主机 ...

  6. ftp文件服务器连接超时,ftp服务器连接成功 获取文件超时

    ftp服务器连接成功 获取文件超时 内容精选 换一换 有以下几种现象:将制作好的SD卡插入开发者板并上电后,开发者板LED1与LED2灯状态信息异常.将制作好的SD卡插入开发者板,并通过USB方式连接 ...

  7. 计算机如何通过手机连接网络连接网络,手机通过usb连接电脑上网,教您手机怎么通过usb连接电脑上网...

    众所周知,或许将二者结合起来效果会更不错,能够让手机和电脑连接起来的一个重要的渠道就是USB接口.那么如何让手机通过USB接口连接电脑上网呢?不知道的用户还是有很多,下面,小编就来跟大家分享手机通过u ...

  8. Android 设备蓝牙连接扫描枪获取扫描内容

    Android 设备蓝牙连接扫描枪获取扫描内容 标签(空格分隔): 未分类 条形扫描枪主要可以扫描条形码和二维码等,扫描速度比手机扫描设备快得多,本文简单介绍android 通过蓝牙监听蓝牙连接,当扫 ...

  9. android 获取设备旋转角度,获取Android设备的方向,Sensor和SensorManager实现手机旋转角度...

    http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1009/425.html 带有g-sensor的Android设备上可通过API ...

最新文章

  1. 胡总和老朱说的一个小技巧
  2. 残差网络(Residual Networks, ResNets)
  3. 四川300家旅游企业将用上阿里云
  4. python pyusb库使用教程【在window10系统上操作USB】(操作Intel Realsense D435)
  5. GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景
  6. 彼聆智能语音机器人_电销行业的人工智能:智能语音电话机器人
  7. Revit二次开发之“让对象处于被选择状态”
  8. python写dnf脚本怎么过检测_DNF脚本会被检测到吗?
  9. 谷粒商城学习笔记(3)-- 分布式组件
  10. 汽车电子ISO7637-2 5A/5B抛负载测试详解
  11. 【计算机网络】一篇文章带你分清波特率和比特率~
  12. Centos软件安装库文件缺失(sqliteman安装中Could not find QScintilla library)
  13. 战神引擎 ggtools授权工具_由虚幻始,再由虚幻生,谈谈虚幻引擎对于黑神话:悟空的助力...
  14. linux 磁盘格式化xfs,大磁盘分区格式化XFS文件系统
  15. 《广西经济社会发展报告(2019)》正式发布 聚焦发展热点
  16. 卷积神经网络的现代雏形——LeNet
  17. .lnk文件 和一种较新的.lnk病毒及解决方法
  18. bind dlz mysql rpm_智能DNS --BIND DLZ+MYSQL
  19. Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)
  20. Sicily 1484. 守望者的逃离

热门文章

  1. springboot自定义异常
  2. 阿里云人脸识别接口调用卡顿,超时
  3. 搭建syslog服务器
  4. 微信5.0订阅号 OR 服务号?
  5. ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
  6. Android流媒体处理流程分析
  7. DSOframer 无法正常加载的解决方案
  8. 杜教筛(上):整除分块,积性函数,欧拉与莫比乌斯
  9. linux 5.5 关机,linux杂记(五)正确关机方法(shutdown,reboot,init,halt)
  10. C++ lambda函数详解