Androidバージョン6.0にアップグレードした後、デバイスでLocationサービスが有効になっている場合、Bluetooth Low Energy(BLE)スキャンが機能します。参考までにここをクリックしてください:Bluetooth Low Energy startScan on Android 6.0 does not find devicesAndroid 6.0のBluetooth Low Energy Scanningのロケーションを有効にする必要があります
基本的には、アプリと携帯電話の両方に対して許可を有効にする必要があります。これはバグですか?実際に位置情報サービスを有効にしないでスキャンすることは可能ですか?私はすべての自分のアプリケーションのための場所を持つ必要はありません。私は、私はこの方法が必要であることをマニフェストにコースや細かい場所の権限を持つ大丈夫だAPI 21で提供BluetoothLeScanner
でstartScan()
方法を使用していますことを言及しなかった
EDIT 。私はちょうど私のアプリのユーザーが私のアプリを使用するために自分のデバイス(GPSなど)上の位置情報サービスを有効にする必要はありません。
以前は、startScan()
メソッドが実行され、電話機でロケーションサービスが無効になっている結果が返されました。しかし、Marshmallowでは、ロケーションサービスが電話で有効にされておらず、コース/細かいロケーションのパーミッションがマニフェストに残っていると、同じアプリケーションが "スキャン"してサイレントに失敗し、結果を返しませんでした。
どのデバイスをお使いですか?私はMoto G 2世代で同じ問題に遭遇しました。 Moto G 1世代とNexus 6は、位置情報サービスを明示的に有効にすることなく、同じコードで正確に動作します。 – shadowhorst
私はMarshmallowを実行しているどのデバイスでも気づいています - Nexus 5X、Samsung S6、Samsung S7、LG G4 –