- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只在我的 Oneplus 设备上遇到问题,而 Pixel 和 Nokia 运行得很好。
这是我的问题。我有 BLE 设备并使用以下代码通过我的应用程序连接到它。
public boolean connect(final String address) {
if (mBluetoothAdapter == null || address == null) {
Log.e(TAG, "BluetoothAdapter not initialized or unspecified address.");
return false;
}
String mBluetoothDeviceAddress = Util.getDeviceAddress(this);
// Previously connected device. Try to reconnect.
if (mBluetoothGatt != null && Util.isBLEDeviceConnected(this, mBluetoothDeviceAddress)) {
Log.d(TAG, "Already connected");
broadcastUpdate(ACTION_GATT_CONNECTED, mBluetoothDeviceAddress);
return true;
} else if (mBluetoothGatt != null) {
Log.d(TAG, "GATT Connection is Required");
mBluetoothGatt.connect();
return true;
}
if (!mIsConnecting) {
final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
if (device == null) {
Log.w(TAG, "Device not found. Unable to connect.");
return false;
}
// We want to auto connect to the device, so we are setting the autoConnect
// parameter to true.
Log.d(TAG, "Trying to create a new connection.");
mBluetoothGatt = device.connectGatt(this, true, mGattCallback);
mIsConnecting = true;
} else {
Log.d(TAG, "Already connection is in progress");
}
return true;
}
@Override
public void onDestroy() {
super.onDestroy();
disconnect();
close();
unregisterReceiver(bluetoothReceiver);
unregisterReceiver(mGattDisconnectReceiver);
}
public void disconnect() {
Log.d(TAG, "Disconnecting Gatt " + mBluetoothGatt);
if (mBluetoothGatt == null) {
Log.w(TAG, "BluetoothGatt not initialized");
return;
}
mBluetoothGatt.disconnect();
mIsConnecting = false;
}
public void close() {
Log.d(TAG, "Closing Gatt " + mBluetoothGatt);
if (mBluetoothGatt == null) {
Log.w(TAG, "BluetoothGatt not initialized");
return;
}
mBluetoothGatt.close();
mIsConnecting = false;
mBluetoothGatt = null;
}
配对工作正常,直到我关闭/关闭我的手机。如果我下次尝试配对/连接时重启手机,它将无法正常工作。它根据我的代码显示“正在尝试创建新连接”,并在下面作为附加日志显示。
2019-03-01 09:01:08.083 9983-9983/com.wrkspot.employee.dev D/BLEService: Trying to create a new connection.
2019-03-01 09:01:08.084 9983-9983/com.wrkspot.employee.dev D/BluetoothGatt: connect() - device: C1:B4:70:12:4B:23, auto: true
2019-03-01 09:01:08.084 9983-9983/com.wrkspot.employee.dev D/BluetoothGatt: registerApp()
2019-03-01 09:01:08.085 9983-9983/com.wrkspot.employee.dev D/BluetoothGatt: registerApp() - UUID=a18ee742-4543-473c-8789-37a22845a96c
2019-03-01 09:01:08.087 9983-10064/com.wrkspot.employee.dev D/BluetoothGatt: onClientRegistered() - status=0 clientIf=8
我被卡住了,我真的需要一些建议。这个问题只发生在我的 Oneplus 3T 上,在我测试过的其他几部手机上都可以正常工作。
出现此问题时,我必须重新安装应用程序并重启手机。只有这样我才能再次配对/连接。
最佳答案
只有当 Android 的缓存中有设备或设备已绑定(bind)时,值为 true 的自动连接才有效。当您重新启动手机时,缓存将被清除。所以你必须再次扫描....
关于android - 设备关闭时 Oneplus 中的蓝牙 Gatt 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54937556/
我正在尝试在 gatt 连接并成功发现服务后立即读取特征。但在 onCharacteristicRead gatt 回调中收到错误 15(0x0f,GATT_INSUFFICIENT_ENCRYPTI
我有代码连接到广告自定义服务的自定义 BLE 服务器设备,然后尝试发现它提供的所有服务。 代码适用于 Android 5.1 的 Nexus 5 三星 SM-T320 Android 4.4.2 ZT
我尝试通过蓝牙低功耗 GATT 模式将 android 连接到 linux。 Bluez 中有一个示例代码:btgatt-server.c ,我用它作为服务器。 Android 端为 Android
我的问题很简短 - 在 Zephyr 文档中,我找不到我的问题的答案(这让我感到惊讶)。 一个 GATT 客户端是否可以连接到多个 GATT 服务器? 现在我正在使用两块板来计算一些东西(一个作为服务
我的目标是在 Ubuntu 14.04 上使用 BlueZ 4.101(不是 BlueZ 5.X)通过 USB BLE Dongle(Cambridge Silicon Radio CSR8510 A
我编写了一个连接到心率模型的程序,但我不知道如何解释数据。以下是从第一个输出开始的示例: heart rate is : 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-
我开发了两个实现 GATT 角色的应用程序:服务器和客户端。就我而言,GATT 服务器也是 GAP 外围设备,GATT 客户端是 GAP 中心。 我可以将客户端连接到服务器/从服务器断开连接,但是当我
BLE 设备(脉搏计)的特性值始终相同。信号转到onCharacteristicChanged,但值没有改变,尝试通过不同的方式获取该值。 @Override public void onServic
我正在尝试编写一个应用程序来通过低功耗蓝牙发送消息,然后通过我的外围设备中的 UART 传递这些消息。我已经按照步骤 here应用程序扫描并成功找到设备。但是,使用 BluetoothGatt = B
我一直在研究 BT 4.x (LE) 规范,试图弄清楚这是否可能(没有配对/预兆的事件)。 如果可能的话,有没有人有洞察力(最好链接到规范)? 最佳答案 正如 Mike Petrichenko 评论的
我在这里有一个更广泛的问题,所以如果有人可以向我指出可以解释这一点的文档或文章,那就足够了。不用说,一天的谷歌搜索让我无处可去,我可以伸出援助之手。 我正在连接到 BeagleBoard使用 Blue
我正在为 Android 手机和 Android watch (wearOS) 编写应用程序。这些应用程序将通过蓝牙相互通信。基本上,Android 手机上的应用程序将与 WearOS 设备绑定(bi
我正在研究与 GATT 相关的低功耗蓝牙 (BLE) 中可用的安全类型。更具体地说,使用指定不同安全级别(低、中、高)的 gatttool 时会执行哪些操作?我的理解是BLE中的安全管理器支持4种不同
我正在为 Android 手机和 Android watch (wearOS) 编写应用程序。这些应用程序将通过蓝牙相互通信。基本上,Android 手机上的应用程序将与 WearOS 设备绑定(bi
我正在尝试在树莓派上使用 go 来查询蓝牙低功耗设备。它是功能性的,我可以连接到我想要的设备并迭代连接设备的服务和特性。现在我只是想简化事情,只是读/写我感兴趣的值。它不起作用。 代码: func o
我正在尝试构建一个使用 BluetoothLE 的 Android 应用程序。在教程中,他们使用 128 位 UUID,但我只有 16 位 UUID。我必须使用服务 UUID 和蓝牙基地创建一个新的
我正在开发一个带有 GATT 服务器的 Android Things 应用程序(Dev Preview 6.1,Raspberry Pi)。当连接的客户端应用程序断开连接时,我的设备已停止广告。但是,
我一直在尝试使用 Glucose service 从 BLE 设备读取葡萄糖测量记录.我能够成功连接到设备并在获取新记录时读取它们,但是当我请求以前记录的列表时,我收到状态为 129 的回调(“GAT
我正在开发一个与自定义蓝牙设备通信的 Android 应用程序。调用 BluetoothGatt.Disconnect() 后,我看到调用了 OnConnectionStateChange 回调,新状
我已经创建了一个 BLE GATT 服务器的 android 应用程序,但我找不到在哪里写 GATT 服务器的名称,我的意思是搜索中出现的设备名称。 我都试过了 https://github.com/
我是一名优秀的程序员,十分优秀!