問題タブ [btle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iOS は 1 つのサービスのみをペリフェラル BTLE としてアドバタイズします
2 つのサービス UUID とサービスを指定しているにもかかわらず、IOS は 1 つのサービスしかアドバタイズしていません。エラーは発生しません。また、サービス追加エラー関数が 2 回呼び出されますが、どちらもエラーは発生しません。これが私のコードです。
コードの残りの部分は問題なく実行されます。ここに示した例では、2 つのサービスのうち最初のサービスをアドバタイズします。順序は関係ありません。最初のサービスは常に 2 番目のサービスをアドバタイズします。サービスの両方を宣伝することはありません。単純なものだと確信していますが、行き詰まっています。
ありがとう
ios - 同一のビーコンが一意の BTLE アドレスを持つにはどうすればよいですか?
IOS デバイスの範囲内に複数の同一の BTLE ビーコンがある場合、一意の MAC で各ビーコンをプログラミングせずにどのように区別できますか?
macos - osx 10.11.5 - BTLE 製造元データがadvertisementData にありませんか?
OSX を 10.11.5 にアップグレードすると、AdvertisementData の ManufacturerData フィールドが に報告されたときに欠落する可能性があるようcentralManager: didDiscoverPeripheral: advertisementData: RSSI:
です。
スキャン中にデバイスの電源が入っている場合は存在する傾向がありますが、スキャンの開始時にデバイスが既にアドバタイズしている場合、存在する可能性は低いです。
編集、詳細:
私が CBCentralManagerDelegate コールバックで見ているのは、周辺機器がしばらくオンになった (したがってアドバタイズされた) 後にアプリケーションが起動した場合、centralManager: didDiscoverPeripheral: etc
そのメソッドに渡されるディクショナリに常にキーが不足していることです。アプリケーションの起動後kCBAdvDataManufacturerData
に周辺機器の電源を入れると、そのキーは約 30 秒間散発的に約 1/3 の時間存在し、その後永久に消えます。(永久 = 少なくとも 6 分)
何か案は ?
android - デバイス全体での eddystone ローカリゼーションの予想精度は?
屋内ローカリゼーションには Google eddystone 技術を使用することを検討しています。他のビーコン テクノロジでの経験から、さまざまなデバイスの影響を懸念しています。違いの主な理由は、デバイス上の bt チップ (およびそのアンテナ) の位置、bt チップ自体、およびドライバーにある可能性があります。この違いは eddystone にも当てはまりますか? または、Google はより一貫した精度を提供できますか? (もちろん、Android の人々はすべての制限を回避することはできません。)
bluetooth - GATT プロファイルと UART サービス
周辺機器へのBluetooth接続を備えたモバイルアプリの開発は初めてです。GATT が bluetoothLE 通信に使用される関連プロファイルであると検索しましたが、お客様は UART サービスを使用することをお勧めしました。今、私は1.これら2つのことがどのように関連しているのか、2.これらのいずれかを選択する必要があるのか 、もしそうなら、それぞれの長所と短所は何かについて混乱しています. ありがとう
java - Android: Bluetooth Low Energy スキャナーが null データを受信する
data
これは広告主です (タイプとして渡される通知AdvertiseData
)
無事起動です。
これがスキャナー
コールバックで、この出力を生成するonScarnResult
スキャン レコードをログに記録しますtoString()
残念ながら、uuid は一致します。
ですnull
。toString
出力には、アドバタイズされたデータ文字「123456」の ASCII コード、つまり 49,50,51,52,53,54 が含まれていることに気付きました。
正しい広告データを受け取りたいのですが、何か問題がありますか?
編集: マニフェストには、bluetooth、bt admin、および場所のアクセス許可があります。3 つ目は、Android 6 で実行時にリクエストを起動します。
編集:scanRecord全体を印刷すると、この出力が得られます
ScanRecord [mAdvertiseFlags=-1, mServiceUuids=[cf2c82b6-6a06-403d-b7e6-13934e602664], mManufacturerSpecificData={}, mServiceData={000082b6-0000-1000-8000-00805f9b34fb=[49, 50, 2, 513, 5 54]}、mTxPowerLevel=-2147483648、mDeviceName=null]
mServiceUuids 配列にある広告主が決めた uuid は、mServiceData に関連付けられたキーが別なので基本的には使えません。このようにコードを変更して、データ マップをナビゲートして値を取得しました (2 つの if ブロックを参照してください)。
実際、ライン
広告主の uuid がデータ マップで使用されていないため、false を返します。
値を見つけるためにマップをナビゲートする必要がありました (2 番目の if ブロック) が、それが興味のある値であるかどうかを知る手段がありません。いずれにせよ、システムが値を入力した場合、値を取得できませんレシーバーアプリでスキャナーのコードを実行しているときにわからない別のキー。
受信機でこの問題を処理するにはどうすればよいですか? データ フィールドを使用したいのですが、それらを取得するための文字列キーはアプリオリに知られておらず、システムによって決定されます。
bluetooth - 単一の BTLE システムで複数の Bluetooth プロファイルをサポート
多くの異なるセンサーを接続できる健康システムの開発に取り組んでいますが、サポートされているデバイスのすべてまたは一部が同時に接続されていない可能性があります。システムが関連付けられた各プロファイルを BTLE 経由でアドバタイズできるのが理想的ですが、このソリューションについていくつか質問があり、確実な答えが見つからないようです。
1) 1 つのシステムで複数の BTLE プロファイルをサポートできますか?
2) プロファイルをサポートするには、プロファイルが必要とするサービスと特性がサポートされていれば十分ですか? 各プロファイル ドキュメントには、いくつかの特定の接続間隔の概要が示されていますが、これが要件なのか提案された実装なのかはわかりませんでした。
3) ツールがベース システムに接続されているときに、実行時に有効なプロファイルを変更することは可能ですか? その場合、現在接続されているデバイスまたはペアリングされているデバイスに影響がありますか?