setget方法Androidd设备有蓝牙模块,可是BluetoothAdapter.getDefaultAdapter()却为空

 上传我的文档
 上传文档
 下载
 收藏
粉丝量:24
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Android中蓝牙的基本使用----BluetoothAdapter类简介
下载积分:30
内容提示:Android中蓝牙的基本使用----BluetoothAdapter类简介
文档格式:PDF|
浏览次数:266|
上传日期: 20:34:47|
文档星级:
全文阅读已结束,如果下载本文需要使用
 30 积分
下载此文档
该用户还上传了这些文档
Android中蓝牙的基本使用----BluetoothAdapter类简介
关注微信公众号Android中蓝牙的基本使用----BluetoothAdapter类简介
天气逐渐热了,自己也越来越懒了,虽然看着了很多东西,解决了很多问题,有些收获却不想写着。主要有一下两方面原因:
第一、以前写的一些关于知识的Blog,都是在学习过程中发现网络上没有相关知识,因此下了很大决心,才一步
一步码字儿给贴出来。承蒙各位网友的厚爱,本博客还是有些底子的。
第二、最近的工作态度发生了改变,不在像那么以前充满热情,充满力量,就着问题解决问题,自己都有点耐烦了。心里
寻思着,也许是该改变些什么了吧。
新的手机项目,又开始从事之前的Settings模块了,现在看看Settings模块,没有了最开始的那种心虚,还是觉得挺熟悉的。
就是代码量太多了,看着有点头大。
好吧。我们废话就介绍到此了,下面开始正文。本节主要介绍蓝牙—BluetoothAdapter的一些基本应用,一些简单的Android
API的使用。
一、 BluetoothAdapter类介绍
BluetoothAdapter类简单点来说就是代表了本设备(手机、电脑等)的蓝牙适配器对象,通过它我们可以蓝牙设备进行基本
开发了,主要有如下功能:
1、开关蓝牙设备
2、扫描蓝牙设备
3、设置/获取蓝牙状态信息,例如:蓝牙状态值、蓝牙Name、蓝牙Mac地址等;
由于网络上关于BluetoothAdapter的一些常用API函数都有了介绍,因此,我着重介绍一些BluetoothAdapter类疏忽的地方。
1、BluetoothAdapter STATE 状态值 , 即开关状态
int STATE_OFF
蓝牙已经关闭
int STATE_ON
蓝牙已经打开
int STATE_TURNING_OFF
蓝牙处于关闭过程中 ,关闭ing
int STATE_TURNING_ON
蓝牙处于打开过程中 ,打开ing
上图中 , 红色线路图表示蓝牙由关闭状态 转向为打开状态的过程 ;
蓝色线路图表示蓝牙由打开状态 转向为关闭状态的过程 ;
2、BluetoothAdapter
SCAN_MOD状态值 ,即扫描状态
首先说明,可以扫描其他设备的,当然它同时能被其他蓝牙设备扫码。
SCAN_MODE_CONNECTABLE
表明该蓝牙可以扫描其他蓝牙设备
SCAN_MODE_CONNECTABLE_DISCOVERABLE
表 明该蓝牙设备同时可以扫码其他蓝牙设备,并且可以被其他蓝牙设备扫描到。
SCAN_MODE_NONE : 该蓝牙不能扫描以及被扫描。
3、获得蓝牙适配器实例
public static synchronized BluetoothAdapter getDefaultAdapter ()
功能:获得本设备的蓝牙适配器实例。
返回值:如果设备具备蓝牙功能,返回BluetoothAdapter 实例;否则,返回null对象。
4、打开/关闭蓝牙的两种方法:
4.1、打开蓝牙:
①、直接调用函数enable()去打开蓝牙设备 ;
②、系统API去打开蓝牙设备,该方式会弹出一个对话框样式的Activity供用户选择是否打开蓝牙设备。
注意:如果蓝牙已经开启,不会弹出该Activity界面。
PS:在目前Android手机中,是不支持在飞行模式下开启蓝牙的。如果蓝牙已经开启,那么蓝牙的开关状态会随着飞行模式
的状态而发生改变。
代码示例分别如下:
4.2、关闭蓝牙
直接调用API 函数即disable()即可。
boolean disable ()
功能:关闭蓝牙设备。
返回值:该函数会立即返回。
表示关闭操作成功
表示蓝牙操作失败 , ①、当前蓝牙已经关闭 ;
②、其他一些异常情况
5、扫描蓝牙设备
public boolean startDiscovery ()
功能: 扫描蓝牙设备
注意: 如果蓝牙没有开启,该方法会返回false ,即不会开始扫描过程。
boolean cancelDiscovery ()
功能: 取消扫描过程。
注意: 如果蓝牙没有开启,该方法会返回false。
public boolean isDiscovering ()
功能: 是否正在处于扫描过程中。
注意: 如果蓝牙没有开启,该方法会返回false。
6、 获取蓝牙相关信息
public String getName ()
功能:获取蓝牙设备Name
public String getAddress ()
功能:获取蓝牙设备的硬件地址(MAC地址),例如:00:11:22:AA:BB:CC
public boolean setName (String name)
功能:设置蓝牙设备的Name,
public Set&BluetoothDevice& getBondedDevices ()
功能:获取与本机蓝牙所有绑定的远程蓝牙信息,以BluetoothDevice类实例(稍后讲到)返回。
注意:如果蓝牙为开启,该函数会返回一个空集合 。
public static boolean checkBluetoothAddress (String address)
功能: 验证蓝牙设备MAC地址是否有效。所有设备地址的英文字母必须大写,48位,形如:00:43:A8:23:10:F1 。
返回值: true 设备地址有效
false 设备地址无效
public BluetoothDevice getRemoteDevice (String address)
功能:以给定的MAC地址去创建一个 BluetoothDevice 类实例(代表远程蓝牙实例)。即使该蓝牙地址不可见,也会产生
一个BluetoothDevice 类实例。
返回:BluetoothDevice 类实例 。注意,如果该蓝牙设备MAC地址不能被识别,其蓝牙Name为null。
异常:如果MAC
address无效,抛出IllegalArgumentException。
7、蓝牙相关广播
ACTION_STATE_CHANGED
蓝牙状态值发生改变
ACTION_SCAN_MODE_CHANGED
蓝牙扫描状态(SCAN_MODE)发生改变
ACTION_DISCOVERY_STARTED
蓝牙扫描过程开始
ACTION_DISCOVERY_FINISHED
蓝牙扫描过程结束
ACTION_LOCAL_NAME_CHANGED
蓝牙设备Name发生改变
ACTION_REQUEST_DISCOVERABLE
请求用户选择是否使该蓝牙能被扫描
PS:如果蓝牙没有开启,用户点击确定后,会首先开启蓝牙,继而设置蓝牙能被扫描。
ACTION_REQUEST_ENABLE
请求用户选择是否打开蓝牙
ACTION_FOUND
(该常量字段位于BluetoothDevice类中,稍后讲到)
说明:蓝牙扫描时,扫描到任一远程蓝牙设备时,会发送此广播。
通过注册这个广播,我们可以获取扫描到的蓝牙信息。方法如下:
最后,关于这些广播的Intent信息,还有很多附加值,大家可以去看看Android SDK。
更多关于BluetoothAdapter类的API介绍,请参考农民伯伯的博客:
最后,在使用这两个类时,需要以下两个权限:
"android.permission.BLUETOOTH"
BLUETOOTH_ADMIN
值为 "android.permission.BLUETOOTH_ADMIN"
二、 BluetoothDevice类介绍
该类就是关于远程蓝牙设备的一个描述。通过它可以和本地蓝牙设备---BluetoothAdapter连接通信。
1、 蓝牙绑定(Bound)状态 , 即蓝牙设备是否与其他蓝牙绑定
BOND_BONDED
表明蓝牙已经绑定
BOND_BONDING
表明蓝牙正在绑定过程中 , bounding
表明没有绑定
更多关于BluetoothDevice类的更多介绍,请参考该农民伯伯的该篇博客:
我也不再啰嗦了。
下面贴出一个小Demo吧,挺简单的,也就是关蓝牙API的基本操作和蓝牙相关广播的监听,处于显示目的方便性,本文对
蓝牙相关信息的获取,都通过Log输出。请大家注意。 截图如下:
代码什么的就不在张贴了,只是帮助大家学习过程中减少工作量而已,别无其他。
示例代码下载地址为:
最后关于如果连接某个蓝牙设备,就需要利用蓝牙部分的隐藏API了,关于这方面,大家可以看看hellogv的博客:
目前还没有机会研究这方面知识,以后会尝试的。 Good luck for U !
没有更多推荐了,Android蓝牙API之BluetoothAdapter类_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Android蓝牙API之BluetoothAdapter类
&&Android蓝牙API之BluetoothAdapter类
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢怎么用android获取bluetooth的信号强度_百度知道
怎么用android获取bluetooth的信号强度
我有更好的答案
1.oncreate面增加 注册扫描广播 public void onCreate(Bundle savedInstanceState) { // 注册始发现广播 IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED); this.registerReceiver(mReceiver, filter); } 2.新建BroadcastReceiver广播象并实现面onreceive,onreceiverssi(信号强度) private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); //设备始扫描 if (BluetoothDevice.ACTION_FOUND.equals(action)) { //IntentblueDevice象 BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if (device.getBondState() != BluetoothDevice.BOND_BONDED) { //信号强度 short rssi = intent.getExtras().getShort( BluetoothDevice.EXTRA_RSSI); } } } };
【0元入学,两周免费试听】
主营:培训【Python+人工智能,Java大数据,HTML5】
Android 蓝牙编程的基本步骤:1. 获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter(); 如果BluetoothAdapter 为null,说明android手机没有蓝牙模块。判断蓝牙模块是否开启,blueadapter.isEnabled() true表示已经开启,false表示蓝牙并没启用。2.启动配置蓝牙可见模式,即进入可配对模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200); startActivity(in); ,200就表示200秒。3.获取蓝牙适配器中已经配对的设备Set&BluetoothDevice& device=blueadapter.getBondedDevices(); 当然,还需要在androidManifest.xml中声明蓝牙的权限&uses-permission android:name=&android.permission.BLUETOOTH& /&&uses-permission android:name=&android.permission.BLUETOOTH_ADMIN& /& 4.接下来就是根据自己的需求对BluetoothAdapter 的操作了。
为您推荐:
其他类似问题
信号强度的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义.&
一 BluetoothAdapter简介
1.继承关系
该类仅继承了Object类;
2.该类作用
BluetoothAdapter代表了移动设备的本地的蓝牙适配器, 通过该蓝牙适配器可以对蓝牙进行基本操作, 例如 : 启动设备发现(startDiscovery), 获取已配对设备(getBoundedDevices), 通过mac蓝牙地址获取蓝牙设备(getRemoteDevice), 从其它设备创建一个监听连接(listenUsingRfcommWithServiceRecord);
BluetoothAdapter.getDefaultAdapter()该静态方法可以获取该适配器对象.
3.蓝牙权限
android.permission.BLUETOOTH&: 允许程序连接到已配对的蓝牙设备, 请求连接/接收连接/传输数据需要改权限, 主要用于对配对后进行操作;
android.permission.BLUETOOTH_ADMIN&:&允许程序发现和配对蓝牙设备, 该权限用来管理蓝牙设备, 有了这个权限, 应用才能使用本机的蓝牙设备, 主要用于对配对前的操作;
优先级 : BLUETOOTH权限是BLUETOOTH_ADMIN权限的前提, 如果没有BLUETOOTH权限, 就不能使用BLUETOOTH_ADMIN权限;
二 API详解
1.常量介绍
(1)开关状态值
蓝牙关闭&: int&STATE_OFF&, 值为10, 蓝牙模块处于关闭状态;
蓝牙打开中&: int&STATE_TURNING_ON&, 值为11, 蓝牙模块正在打开;
蓝牙开启&: int&STATE_ON&, 值为12, 蓝牙模块处于开启状态;
蓝牙开启中&: int&STATE_TURNING_OFF&, 值为13, 蓝牙模块正在关闭;
蓝牙开关状态顺序&: STATE_OFF --& STATE_TURNING_ON --& STATE_ON --& STATE_TURNING_OFF --& STATE_OFF;
(2)扫描状态值
无功能状态&: int&SCAN_MODE_NONE&, 值为20, 查询扫描和页面扫描都失效, 该状态下蓝牙模块既不能扫描其它设备, 也不可见;
扫描状态&: int&SCAN_MODE_CONNECTABLE&, 值为21, 查询扫描失效, 页面扫描有效, 该状态下蓝牙模块可以扫描其它设备, 从可见性来说只对已配对的蓝牙设备可见, 只有配对的设备才能主动连接本设备;
可见状态&: int&SCAN_MODE_CONNECTABLE_DISCOVERABLE, 值为23, 查询扫描和页面扫描都有效;
查询扫描功能&: 其它设备可以扫描到本设备 , 指的是可见性可见;
页面扫描功能&: 可以主动扫描其它设备;
(3)蓝牙操作接收的广播
开始搜索广播&: String&ACTION_DISCOVERY_STARTED, 蓝牙适配器开始搜索远程设备, 值为"android.bluetooth.action.DISCOVERY_START", 蓝牙适配器开始搜索之后, 会先有12秒的查询扫描(12s内可见), 查询扫描后进行页面扫描(主动搜索), 需要BLUETOOTH权限;
如果搜索到蓝牙设备, 就会收到BluetoothDevice.ACTION_FOUND广播, 可以从Intent中获取存放在其中的BluetoothDevice对象, intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
设备查找非常消耗资源, 在查找的过程中, 不能连接远程的蓝牙设备, 已经存在的连接也要限制带宽, 如果想要执行除查找外的其它操作, 之前最好调用cancelDiscovery();
搜索完成广播&: String&ACTION_DISCOVERY_FINISHED,蓝牙S适配器完成搜索发出的广播,&值为"android.bluetooth.adapter.action.DISCOVERY_FINISHED", 需要BLUETOOTH权限;
蓝牙名称改变广播&: String&ACTION_LOCAL_NAME_CHANGED, 本地的蓝牙适配器改变了自己的名称, 值为"android.bluetooth.adapter.action.LOCAL_NAME_CHANGED", 注意改变的是本设备名称, 不是远程设备的.这个广播包含一个EXTRA_LOCAL_NAME附加域, 需要BLUETOOTH权限;
扫描模式变化广播&: String&ACTION_SCAN_MODE_CHANGED, 蓝牙模块扫描模式发生了变化, 值为"android.bluetooth.adapter.action.SCAN_MODE_CHANGED", 该Intent对象包含了EXTRA_SCAN_MODE和EXTRA_PREVIOUS_SCAN_MODE, 两个附加域分别是新的和旧的扫描模式, 这里可以根据前后扫描模式的不同做出不同的操作, 需要BLUETOOTH权限;
开关模式变化广播&: String&ACTION_STATE_CHANGED, 蓝牙模块被打开或者关闭, 值为"android.bluetooth.adapter.action.STATE_CHANGED", 该广播的Intent中包含EXTRA_STATE和EXTRA_PREVIOUS_STATE两个附加域, 需要BLUETOOTH权限;
(4)蓝牙操作请求的广播
开启蓝牙&: String&ACTION_REQUEST_ENABLE, 打开蓝牙, 值为"android.bluetooth.adapter.action.REQUEST_ENABLE",&
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, requestCode);
可以在Activity中的onActivityResult()方法中处理结果, 如果蓝牙模块打开成功, 则返回结果吗RESULT_OK; 如果蓝牙模块打开失败, 则返回结果码RESULT_CANCELED;
打开和关闭蓝牙模块, 都可以通过ACTION_STATE_CHANGED广播来监听;
蓝牙可见&: String&ACTION_REQUEST_DISCOVERABLE, 使蓝牙可见, 值为"android.bluetooth.adapter.action.REQUEST_DISCOVERABLE", 默认的可见时间为120s, 可以在广播中添加附加域, 设置任意的可见时间, 附加域为EXTRA_DISCOVERABLE_DURATION, 需要BLUETOOTH权限;可以在Activity中的onActivityResult()方法中处理结果, 如果蓝牙模块设置可见成功, 则返回结果吗RESULT_OK; 如果蓝牙模块设置可见失败, 则返回结果码RESULT_CANCELED;
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
startActivityForResult(discoverableIntent,resultCode)
附加域是放在Intent中的, 使用Intent.putExtra(附加域,附加值)方法添加附加域;
扫描模式附加域&: 这两个附加域的值是扫描模式, 可以为SCAN_MODE_NONE, SCAN_MODE_CONNECTABLE, SCAN_MODE_CONNECTABLE_DISCOVERABLE;
String&EXTRA_SCAN_MODE&: 值为"android.bluetooth.adapter.extra.SCAN_MODE";
String&EXTRA_PREVIOUS_SCAN_MODE&: 值为"android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE";
开关状态附加域&: 这两个附加域的值是开关状态, 可以为STATE_OFF, STATE_ON, STATE_TURNING_OFF, STATE_TURNING_ON;
String&EXTRA_STATE&: 值为"android.bluetooth.adapter.extra.STATE";
String&EXTRA_PREVIOUS_STATE&: 值为"android.bluetooth.adapter.extra.PREVIOUS_STATE";
蓝牙名称附加域&: String&EXTRA_LOCAL_NAME&, 存放ACTION_LOCAL_NAME_CHANGED附加域的附加值 , 值为"android.bluetooth.adapter.extra.LOCAL_NAME";
可见时间附加域&: String&EXTRA_DISCOVERABLE_DURATION, 存放的是ACTION_REQUEST_DISCOVERABLE广播的可见时长, 值为"android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
int&ERROR&, 这个值用来标记错误 , 方便自己使用的 , 没有实际意义;
2.State状态相关方法
(1)获取蓝牙适配器
public static sychronized BluetoothAdapter getDefaultAdapter();
返回值 : 本地蓝牙适配器 BluetoothAdapter对象;
(2)获取state状态方法
public int getState();
作用 : 获取是否可用
返回值 : 返回当前的State状态值, STATE_ON, STATE_OFF, STATE_TURNING_ON, STATE_TURNING_OFF;
权限 : BLUETOOTH;
(3)蓝牙是否可用
public boolean isEnable();
作用 : 获取当前设备蓝牙模块是否可用;
返回值 : 返回当前蓝牙模块是否可用, true 可用, false 不可用;
权限 : BLUETOOTH权限;
(4)打开蓝牙
public boolean enable();
作用 : 打开本地蓝牙适配器;
返回值 : 如果打开成功则返回true, 如果打开失败返回
权限 : BLUETOOTH_ADMIN权限;
(5)关闭蓝牙
public boolean disable();
作用 : 关闭本地设备蓝牙;
返回值 : 如果关闭蓝牙成功, 返回 如果关闭蓝牙失败, 返回
权限 : BLUETOOTH_ADMIN权限;
3. 扫描相关方法
(1)开始扫描
public boolean startDiscovery();
作用 : 开始查找远程蓝牙设备, 先进行12秒的查询扫描(被动可见), 之后进行页面扫描(主动搜索); 搜索过成功不能尝试对远程设备的连接, 同时已连接的设备的带宽也会被压缩, 等待时间变长; 使用cancelDiscovery()可以终止搜索;
返回值 : 如果成功则返回true, 失败返回
权限 :& &BLUETOOTH_ADMIN权限;
(2)是否在扫描中
public boolean isDiscovering();
作用 : 是否正在搜索;
返回值 : 如果设备正在搜索, 返回 如果设备没有进行蓝牙搜索, 返回
权限 : BLUETOOTH权限;
(3)取消查找
public boolean cancelDiscovery();
作用 : 取消蓝牙搜索; 在进行connect()方法的时候, 必须调用这个方法, 蓝牙搜索是一个服务进行, 在搜索中的时候, 不能进行连接;
返回值 : 如果取消成功, 则返回 如果取消失败, 返回
(4)获取扫描模式
public int getScanMode();
作用 : 获取当前蓝牙的扫描模式;
返回值 : SCAN_MODE_NONE, SCAN_MODE_CONNECTABLE, SCAN_MODE_DISCOVERABLE;
4.与蓝牙设备相关的方法
(1)检查蓝牙地址
public boolean checkBluetoothAddress(String address);
作用 : 检查蓝牙地址是否合法, 蓝牙地址字母必须大写, 例如 : "00:43:A8:23:10:F0";
参数 : 17位的字符串, 例如 : "00:43:A8:23:10:F0";
返回值 : 如果蓝牙地址合法返回true, 反之返回
(2)获取本地蓝牙地址
public String getAddress();
作用 : 返回本地蓝牙的MAC地址;
返回值 : 本地的硬件地址;
(3)获取本地蓝牙名称
public String getName();
返回值 : 本地蓝牙设备的名称;
(4)获取绑定的蓝牙集合
public Set&BluetoothDevice& getBoundedDevices();
作用 : 获取已经配对的蓝牙设备的集合, 如果蓝牙未被打开, 则返回
(5)获取远程蓝牙设备
public BluetoothDevice getRemoteDevice(String address);
作用 : 根据蓝牙的物理地址获取远程的蓝牙设备, 如果地址不合法, 就会产生异常;
返回值 : 获取到的BluetoothDevice对象;
(6)创建监听
public BluetoothServerSocket listenUsingRfcommonWithServiceRecord(String name, UUID uuid);
作用 : 创建一个监听Rfcommon端口的蓝牙监听, 使用accept()方法监听, 并获取BluetoothSocket对象; 该系统会根据一个服务名称(name)和唯一的识别码(uuid)来创建一个SDP服务, 远程蓝牙设备可以根据唯一的UUID来连接这个SDP服务器;
参数 : name : SDP服务器名称, UUID, SDP记录下的UUID;
返回值 : 正在监听蓝牙端口;
权限 : BLUETOOTH;
三 常用用法
1.打开蓝牙
//第一种打开方法: 调用enable 即可
boolean result = mBluetoothAdapter.enable();
/第二种打开方法 ,调用系统API去打开蓝牙
if (!mBluetoothAdapter.isEnabled()) //未打开蓝牙,才需要打开蓝牙
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, REQUEST_OPEN_BT_CODE);
//会以Dialog样式显示一个Activity , 我们可以在onActivityResult()方法去处理返回值
第一种方法打开蓝牙, 没有任何提示, 直接就打开了;
第二种方法发送广播, 会弹出一个对话框, 选择是否打开蓝牙, 选择是蓝牙才打开;
2.设置可见
private void setDiscoverable() {
Intent bluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
bluetoothIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 3600);
mContext.startActivity(bluetoothIntent);
发送ACTION_REQUEST_DISCOVERABLE广播, 同时在EXTRA_DISCOVERABLE_DURATION附加域中加入可见时间, 单位是秒;
发送这个广播, 会弹出一个对话框, 显示是否可见3600秒;
阅读(...) 评论()

我要回帖

更多关于 蓝牙模块扫描设备mac 的文章

 

随机推荐