簡體   English   中英

掃描設備失敗android BLE

[英]Scanning device fail android BLE

我正在嘗試編寫一個通過BLE聊天應用程序的android應用程序。

<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>

我在日志貓中收到了該消息,並且在掃描設備時未觸發onLeScan()方法。

D/BluetoothAdapter: startLeScan(): null

D/BluetoothAdapter:onClientRegistered() - status=0 clientIf=5

D/BluetoothAdapter: stopLeScan()

我的掃描設備代碼是

private BluetoothAdapter.LeScanCallback mLeScanCallback =
            new BluetoothAdapter.LeScanCallback() {

                @Override
                public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(MainActivity.this, device.getName(), Toast.LENGTH_SHORT)
                                    .show();
                        }
                    });
                }
            };

private void scanLeDevice(final boolean enable) {
        if (enable) {
            // Stops scanning after a pre-defined scan period.
            mHandler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    mScanning = false;
                    mBluetoothAdapter.stopLeScan(mLeScanCallback);
                    invalidateOptionsMenu();
                }
            }, SCAN_PERIOD);

            mScanning = true;
            mBluetoothAdapter.startLeScan(mLeScanCallback);
        } else {
            mScanning = false;
            mBluetoothAdapter.stopLeScan(mLeScanCallback);
        }
    }

當我檢查設備規格時,它們僅支持藍牙智能,不支持外圍設備模式。 我的問題是,是否可以在不支持外圍設備模式的情況下互相連接支持BLE的移動電話? 還是我的代碼有問題?

編輯

我有3個測試設備,分別是具有Android 4.3的Huawei 730,具有Android 4.4.2的Samsung galaxy core 2和具有Android 6.0.1的Android一。 我的問題發生在所有人身上。 我也使用BLEScanner進行測試, 但未檢測到我的所有設備。 另外,我無法通過運行BluetoothLeGatt(這是android sdk的示例項目)來檢測所有設備。

我找到了答案。 這是因為預棒棒糖設備不支持外圍模式。 您的一部用作外圍設備的手機必須具有android 5.0(Lollipop)及更高版本,以便它可以宣傳其狀態,創建GATTServer並讓另一部手機作為中央/客戶端進行連接。

通過BLE在2個Android手機之間進行通信

https://developer.android.com/about/versions/android-5.0.html#BluetoothBroadcasting

編輯

由於硬件要求,甚至有些棒棒糖及以上的電話也不支持外圍模式。

希望對您有用。

暫無
暫無

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

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