WeChat アプレットは全体的に非常に優れています。Bluetooth インターフェイスは確かに「穴」です。この記事では、主に WeChat アプレットの Bluetooth デバイス コードとエラーの分類を説明します。皆さんのお役に立てれば幸いです。
いくつかの問題
多くの Bluetooth デバイスが電話を妨害する可能性があります。同社は 200 以上のデバイスをスキャンし、iPhone 5S の WeChat を直接妨害する可能性があります。
各ハードウェア操作の間に遅延を追加する必要があります。「Bluetooth をオンにする」と「スキャンを開始する」の間、「接続が成功した」と「サービスを取得する」の間など、100 ミリ秒を推奨します。遅延を使用しないと、不可解なエラーが発生する可能性があります。これは Android 側でよく発生します。
JS の非同期性と同時実行性の特性、特にポーリング サービスでの特性に注意してください。ミニ プログラムは、async と await をまだサポートしていません (これら 2 つのキーワードはコード補完に含まれていますが、コンパイルできません)。
Bluetooth データの読み取りと書き込み、データ型は ArrayBuffer です (アプレットを引用するときの注意: vConsole は ArrayBuffer 型のデータを出力できません)。皆さん、まずバイナリ配列と 16 進文字列について理解してください。コードには変換メソッドがあります (github からコピー)。
Bluetooth アダプターの初期化 (wx.openBluetoothAdapter(OBJECT)) とローカル Bluetooth アダプターのステータスの取得 (wx.getBluetoothAdapterState(OBJECT)) これら 2 つの関数のどちらを最初に呼び出すかはわかりません。以下の手順を参照してください。
いくつかのバグ
1. Bluetooth スキャン プロセス中に、ローカル Bluetooth アダプターのステータスを取得します (wx.getBluetoothAdapterState(OBJECT))。 (Android、Huawei Honor 8、VIVO 7plus、6.5.13 のみ)
availableBoolean Bluetooth アダプターが利用可能かどうか、値は true です。
discoveringBoolean デバイスが検出されているかどうか、値は false です。
https://github.com/FFiot/WX_Bluetooth/issues/1
2. Bluetooth スキャン プロセス中に、再度スキャンを開始します。wx.startBluetoothDevicesDiscovery(OBJECT): 失敗、errCode=10008。 (Android、Huawei Honor 8、VIVO 7plus、6.5.13 限定) バグ: Bluetooth スキャン中に Bluetooth ステータスをクエリする · 問題 #1 · FFiot/WX_Bluetoothgithub.com Bluetooth スキャン中に、再度スキャンを開始します。 wx.startBluetoothDevicesDiscovery(OBJECT): 失敗します。エラーコード=10008。 (Android のみ、Huawei Honor 8、VIVO 7plus、6.5.13)
https://github.com/FFiot/WX_Bluetooth/issues/2
errorCode が errMsg と混在しています。 (IOS、IPHONE5s、WeChat 6.5.15 限定)
https://github.com/FFiot/WX_Bluetooth/issues/3
3. Bluetooth がサービス中の文字をスキャンしている場合、複数のサービスがある場合、最初のサービスでキャラクターを取得し、他のサービスで取得したキャラクターは最初のサービスと同じです。 (IOS、IPHONE5s、WeChat 6.5.15 に固有)
モバイル デバイスで Bluetooth をオン/オフするには 2 つの状態があり、wx.onBluetoothAdapterStateChange コールバックをトリガーします
1、wx.getBluetoothAdapterState(OBJECT)
オフ状態は戻ります: drrCode: 10000、errMsg :"getBluetoothAdapterState:fail"。この時点で Bluetooth をオンにします。 wx.onBluetoothAdapterStateChange(CALLBACK) にはコールバックがありません。
オープンステータスは drrCode:10000,errMsg:"getBluetoothAdapterState:fail" を返します。この時点では Bluetooth をオフにします。 wx.onBluetoothAdapterStateChange(CALLBACK) にはコールバックがありません。
2. wx.getBluetoothAdapterState(OBJECT)
閉じられた状態は、drrCode: 10001、errMsg: "openBluetoothAdapter:fail" を返します。この時点で Bluetooth をオンにします。 wx.onBluetoothAdapterStateChange(CALLBACK) にはコールバックがあります。
オープンステータスは errMsg: "openBluetoothAdapter:ok" を返します。この時点で Bluetooth をオンにします。 wx.onBluetoothAdapterStateChange(CALLBACK) にはコールバックがあります。
関連する推奨事項:
Bluetooth リンクを実装する WeChat アプレットのコード
WeChat アプレットが Bluetooth を実装する方法の例の共有
以上がWeChat アプレット Bluetooth デバイス コードとエラーの並べ替えの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。