ブロードキャストレシーバー設定のクラスがあります。受信機は、次のアクションをリッスン:Android bluetoothadapterがACTION_DISCOVERY_FINISHEDを発光していません
ACTION_FOUND
ACTION_DISCOVERY_STARTED
ACTION_DISCOVERY_FINISHED
発見し、予想通り、しかし、BluetoothAdapterのドキュメントが発見スキャンは〜12秒かかりますし、その後ACTION_DISCOVERY_FINISHED
が続いていることを指定します発せられたアクションを開始しました。 cancelDiscovery()
を呼び出すことによって、完成したアクションの放出を手動でトリガーすることしかできないので、これは当てはまりません。私はそれを十分に長く実行したままにすると、時にはイベントが放出されます(しかし、これは1〜2分以上かかることがあります)。時々、それは起こることさえありません。 Bluetoothを無効にしてスキャンを強制的に終了すると、その操作は期待どおりに行われます。
このスキャンは長い時間がかかりますが、手動でスキャン処理を制御する必要があります。つまり、12秒のカウントダウン後にスキャン処理を自分で終了することになっていますか?あるいは、私はドキュメントで何かを見逃しています。すべてのアクションが到着したことを証明するように、broadcastreceiverは正しく設定されています。
この動作は通常どおり動作しません。残念ながら、特に古いデバイスでは、多くのバリエーションがあります。どのような携帯電話やアンドロイドのバージョン? –
Nexus 5、5.1.1(Lollipop)。私もXperia Z3を持っています。これはスキャンを開始したり停止したりすることができるようですが、スキャン中にデバイスを見つけられません(6.0.1 Marshmallow) –
申し訳ありませんが、回避策を講じなければならないと思いますAndroidの各バージョンとメーカーの違いに合わせて残念ながら、これはかなり正常になっています。独自のスキャンラッパーを作成することができます。スキャンラッパーは、タイマーを使用してスキャンを終了し、必要な期間の最後までスキャンを繰り返します。スキャンを繰り返すと、多くのデバイスが見つかることがよくあります。 –