国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【解決問題】FlutterBlue在安卓手機上無法連接藍牙設備,掃描緩慢

robin / 1990人閱讀

摘要:現在的在安卓手機上很難搜索連接,在上是沒問題的,進行下列更改可以快速修復這個問題,但是會損失掉一些功能,不能通過指定的搜索到設備因為數組被改成了。本文禁止任何類型轉載

現在的FlutterBlue在安卓手機上很難搜索連接,在iOS上是沒問題的,進行下列更改可以快速修復這個問題,但是會損失掉一些功能,不能通過指定Service的UUID搜索到設備(因為uuids數組被改成了[])。

懶人可以直接用我fork之后修改的版本,修改YML文件的flutter_blue地址如下:

  flutter_blue: 
    git: 
      url: git://github.com/mjl0602/flutter_blue.git

If you can’t use flutterblue connect device with Android Phone. You can try low version Api of Android. These apis are deprecated but worked very well in some Android Phone. These
Phones are bad support with new API: you can call the function successful, but scan and connect will be very slow and easy connect fail. To solve this problem, change file:
android/src/main/java/com/pauldemarco/flutterblue/

see new file on: https://github.com/mjl0602/fl...

This change didn"t solve this problem completely. To solve this problem, must add new args to control the api version. but not use Build.VERSION.SDK_INT. It"s works bad.

簡單的說,就是很多手機系統到了新版本,但是對新版本的硬件API支持的很差,強制換成老版本的用法就好了。希望作者加一個字段來控制具體用什么版本的API來搜索。

Change connect way.

// old code,hardly connect device on Red Mi Note 4 
// BluetoothGatt gattServer = device.connectGatt(registrar.activity(), options.getAndroidAutoConnect(), mGattCallback);

// improve MI phone connect speed. If didn"t call connect,Mi phone can"t connect success
BluetoothGatt gattServer = device.connectGatt(registrar.activity(), false, mGattCallback);
gattServer.connect();

Use old version api

// use old version api
private void startScan(MethodCall call, Result result) {
    byte[] data = call.arguments();
    Protos.ScanSettings settings;
    try {
        settings = Protos.ScanSettings.newBuilder().mergeFrom(data).build();
        // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        //     startScan21(settings);
        // } else {
            startScan18(settings);
        // }
        result.success(null);
    } catch (Exception e) {
        result.error("startScan", e.getMessage(), e);
    }
}

private void stopScan() {
    // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    //     stopScan21();
    // } else {
        stopScan18();
    // }
}

Remove uuids arg.

// boolean success = mBluetoothAdapter.startLeScan(uuids, getScanCallback18());
boolean success = mBluetoothAdapter.startLeScan(getScanCallback18());
本文禁止任何類型轉載

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72741.html

相關文章

  • 【開發技巧】再見,BLE的那些坑!

    摘要:項目中用到模塊時,要注意以下問題用示例代碼安卓系統掃描藍牙設備就無法成功,而蘋果則沒問題。安卓和蘋果的設備不一樣,安卓為格式,蘋果為格式。 藍牙,平常你用的多嗎?上班路上戴著藍牙耳機聽音樂、看視頻打開藍牙分享個人熱點給小伙伴們解鎖共享單車時,打開藍牙就能迅速解鎖...... BLE—藍牙低能耗技術,方便了我們的生活,但是開發者在開發過程中卻遇到了不少坑,尤其對小白用戶來說坑真的太多了,...

    Bmob 評論0 收藏0
  • HC-05/06藍牙模塊的原理及使用方法

    摘要:二模塊原理藍牙模塊的通信示意圖如下兩個設備主控芯片或單片機分別連接各自的藍牙模塊,即將主控芯片與藍牙模塊的串口控制引腳交叉連接。如圖注藍牙模塊自帶轉電路。注博主演示的藍牙模塊雖然不是,但是功能和一樣。 ...

    young.li 評論0 收藏0
  • YOOGA 40藍牙雙模焊接PCB簡要說明

    摘要:鍵盤使用說明索引均為出廠默認值升級固件軟件支持一些常見問題解答電池開關電池插座轉接小板連接首次使用測試步驟藍牙和切換鍵盤默認層默認觸發層的鍵配置的功能默認功能層配置的功能默認的快捷鍵藍牙配對藍牙參數藍牙地址管理升級固件 ...

    不知名網友 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<