Android蓝牙通信

设置设备可见对于服务端是必须的,客户端设不设置无所谓。

如果服务端不可见,配对过的设备也搜索到并可以连接上,但是不能通信,没有配对过的设备连搜索都搜索不到。

可见时间的取值范围是0到120,单位是秒,0表示永久可见。

手机上的蓝牙可见仅限一次连接有效。也就是说,一次连接断开以后,下次再等待客户端连接的时候,还需要再设置一次设备可见。


/**

 * 设置设备可见

 * 0 ~ 120

 */

public void setDuration() {

    Intent duration = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);

    duration.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 120);

    mActivity.startActivity(duration);

}

扫描附近的蓝牙设备


扫描附近设备的设备,需要注册一个广播接收者,来接收扫描到的结果。

需要注意的是,接收扫描结果的广播接收者必须使用动态注册,不能在清单文件里注册!

注册搜索蓝牙设备的广播接收者


// 获取设备的广播接收者

FoundDeviceBroadcastReceiver mFoundDeviceBroadcastReceiver = new FoundDeviceBroadcastReceiver();



// 注册receiver监听

IntentFilter mFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);



/**

 * 注册搜索蓝牙设备的广播接收者

 */

public void registerFoundDeviceReceiver() {

    mActivity.registerReceiver(mFoundDeviceBroadcastReceiver, mFilter);

}

反注册搜索蓝牙设备的广播接收者


// 获取设备的广播接收者

FoundDeviceBroadcastReceiver mFoundDeviceBroadcastReceiver = new FoundDeviceBroadcastReceiver();



/**

 * 反注册搜索蓝牙设备的广播接收者

 */

public void unregisterReceiver() {

    mActivity.unregisterReceiver(mFound
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值