在GATT之前,createRfcomSocketToService记录,createInsecureRfcomSocketToService记录
方法可以制作配对设备,
但是GATT对配对设备没有选择,只能使用BluetoothDevice.connectGatt(...)
我想做一个配对设备,如果它已经连接。
thx.
据我所知,在BLE中启动配对程序有两种方法:
1) 从API 19及更高版本,您可以通过调用mBluetoothDevice开始配对。createBond()
。您无需连接远程设备即可开始配对过程。
2) 当你尝试做一个Gatt操作时,让我们以这个方法为例
mBluetoothGatt.readCharacteristic(characteristic)
如果远程BLE设备需要连接以进行任何通信,那么当回调
gatt,BluetoothGatt特性,int状态
被称为它的
状态
参数值将等于GATT_INSUFFICIENT_AUTHENTICATION
或GATT_INSUFFICIENT_ENCRYPTION
,而不等于GATT_SUCCESS
。如果发生这种情况,配对过程将自动启动。
下面是一个示例,以了解调用
onCharacteristicRead
回调后它何时失败
@Override
public void onCharacteristicRead(
BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status)
{
if(BluetoothGatt.GATT_SUCCESS == status)
{
// characteristic was read successful
}
else if(BluetoothGatt.GATT_INSUFFICIENT_AUTHENTICATION == status ||
BluetoothGatt.GATT_INSUFFICIENT_ENCRYPTION == status)
{
/*
* failed to complete the operation because of encryption issues,
* this means we need to bond with the device
*/
/*
* registering Bluetooth BroadcastReceiver to be notified
* for any bonding messages
*/
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
mActivity.registerReceiver(mReceiver, filter);
}
else
{
// operation failed for some other reason
}
}
其他人提到此操作自动启动配对程序:Android蓝牙低能耗配对
这就是接收机的实现方式
private final BroadcastReceiver mReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
final String action = intent.getAction();
if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED))
{
final int state = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.ERROR);
switch(state){
case BluetoothDevice.BOND_BONDING:
// Bonding...
break;
case BluetoothDevice.BOND_BONDED:
// Bonded...
mActivity.unregisterReceiver(mReceiver);
break;
case BluetoothDevice.BOND_NONE:
// Not bonded...
break;
}
}
}
};
我使用与相同的代码来配对设备,就像我用于配对一样。我不确定该代码是否适用于BLE,因为我目前或以后没有BLE设备要测试(只有客户端可以测试)。 我的蓝牙经典配对代码- 这里的每个列表项都是需要绑定的设备。 所以我们点击这个项目,然后它就会被上面的代码绑定。(这适用于经典的蓝牙配对)。 相同的代码是否适用于BLE配对? 我没有找到BLE设备的任何配对代码,也没有找到任何与配对相关的在线/官方信息。这
我正在Visual Studio 2015中用C语言为运行Windows IoT Core的Raspberry PI 2设备开发。 对于我的应用程序,我需要配对和取消配对蓝牙设备 我可以获得配对/未配对/所有蓝牙设备的列表吗<类似于内置管理网站的蓝牙页面(http://[设备IP]:8080/Bluetooth.htm) 我找到了一个例子(https://github.com/Microsoft/
我想查找没有已配对设备的蓝牙设备。但是我的python脚本显示了我配对的设备上的蓝牙设备。如何只过滤打开的设备并忽略电脑中的配对设备,而不删除它们。 这是我的剧本
我正在尝试枚举所有与我的设备配对的蓝牙设备。在设置中,我可以查看配对的设备,但以下代码不返回任何项目: 我看过这篇和其他使用这种方法的帖子,但我似乎无法让它发挥作用。 我在Manifest.xml有以下权限: 此外,如果我将其中一个已配对的设备置于发现模式并进行扫描,则该设备会以已配对的状态返回。如果我检查: 从扫描中,它返回true。 我做错了什么或不理解什么?
问题内容: 我正在创建一个应通过蓝牙连接到特定设备的应用程序。 无论设备是否已配对,我都希望我的应用程序与此设备连接。 现在我有这个 但是此功能仅连接到配对的设备。如果我的设备尚未配对,我想将其配对。不知道该怎么做。 有人可以给我任何建议吗? 问题答案: 首次请求权限。 然后使您的设备可发现: 然后创建一个 BroadcastReceiver 来监听系统中的动作: 并通过注册以下 Boardcas
是否可以自动连接到蓝牙低能耗(BLE)设备? Android文档表明[](https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,boolean,android.bluetooth.BluetoothGattCallback)