簡體   English   中英

Android BLE,無法連接到設備

[英]Android BLE, Can't connect to device

我正在制作一個必須與Android上的BLE設備通信的應用程序。

我在建立與BLE設備的連接時遇到問題。

情況1)掃描:在通過設備發現並報告設備后的掃描過程中

BluetoothLEScanCallback.onScanResult(...)

我正在嘗試通過以下方式進行連接:

result.getDevice().connectGatt(...)

問題是在某些我測試過的設備上(即運行Android 5.0.1的HTC One M8和運行Android 4.3的HTC Desire 516),連接過程似乎失敗,即回調

BluetoothGattCallback.onConnectionStateChange(....)

大多數時候根本不被稱為。 現在這不是一致的行為,有時不是。

第二個問題是,如果建立連接,通常

BluetoothGatt.discoverServices()

呼叫失敗,即,也不會呼叫BluetoothGattCallback.onServicesDiscovered(...)。 我嘗試重試幾次以X毫秒為間隔的呼叫,但無論嘗試次數或間隔如何,它似乎始終會失敗。

案例2聆聽

當我嘗試簡單地“監聽”設備並再次調用時,會發生幾乎相同的事情

BluetoothDevice device = BluetoothManager.getAdapter().getRemoteDevice(macAddress);
device.connectGatt(...)

結果通常在相同的情況下。

在這兩種情況下,大多數時候我都遇到了Android問題,我使用的是Nexus 5設備,該設備在大多數情況下都可以使用相同的代碼(有時BT堆棧似乎無法完成工作),這更令人不安我們擁有的iOS應用程序沒有這些問題。

有沒有人遇到這些問題? 任何想法如何解決它們?

編輯:我們確實“解決”了這一點。 萬一有人偶然發現這種情況,我的問題是,ymmv在設備之間甚至在連接之間都是很多的。 有時,此過程大約需要5秒鍾才能完成,而在我的測試中,該過程可能會上升到15倍。 至於為什么這我不知道。

我遇到同樣的問題。 我連接到Bluegigga BLE113藍牙4.0模塊。 我的應用程序基於BluetoothLeGatt示例源。 我的三星手機連接良好,沒有問題。 我的LG V10無法連接。 除非有時會連接。 通常,它不會連接。 onConnectionStateChange永遠不會被調用。 這非常令人沮喪,我還無法弄清問題所在。

但是,如果我使用NRF Connect,則可以連接LG手機,這似乎證明存在一種編程解決方案。 但是他們沒有發布NRF-Connect的源代碼。

如果有人可以擴展解決方法,我將不勝感激。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM