私のアプリでは、9 台の Ble デバイスを同時に接続する必要がありました。この記事と他のリソースでは、Android 4.4+ は 7 台のデバイスにしか接続できないと書かれています。M または N バージョンで何か新しいことはありますか? ありがとう。
5300 次
2 に答える
11
接続数は定数 MAX_L2CAP_LINKS と GATT_MAX_PHY_CHANNEL によって制限されており、現在 (まだ) 7 に設定されています。
autoConnect = true で 8 番目のデバイスを接続しようとすると、Android M で導入されたバグにより、Bluetooth を再起動するまで、スタックがハングして再度接続できなくなります。 autoConnect = false を使用して 8 番目のデバイスを接続すると、すぐにnewState = disconnected の onConnectionStateChange コールバックで、接続の試行は行われません。
なぜこれらの定数が非常に低いのかわかりません。多くの場合、ハードウェア自体は 7 つ以上を実行できます。たとえば、AOSP を自分でコンパイルして定数を変更すると、Nexus 6P は 15 を実行できます。
Samsung はこの問題に気づき、一部のデバイスで定数を増やしたようです。たとえば、Samsung Galaxy Tab A 10.1 は、変更なしで 15 の BLE 接続を処理できます。
于 2016-12-28T18:39:05.980 に答える