[解決済み] Android 6.0でBluetooth Low Energyスキャンを使用するには位置情報を有効にする必要があります。
質問
Android バージョン 6.0 にアップグレードした後、Bluetooth Low Energy (BLE) スキャンは、デバイスで位置情報サービスが有効になっている場合のみ機能します。参考までにこちらをご覧ください。 Android 6.0 の Bluetooth Low Energy startScan でデバイスが検出されない
基本的には、アプリのパーミッションが有効で、かつ、電話のパーミッションもオンになっている必要があります。 これはバグですか? 位置情報サービスを実際に有効にせずにスキャンすることは可能でしょうか? すべてのアプリに位置情報を設定する必要があるのは嫌なのですが。
EDIT
私は言及しそびれていましたが、私が使っているのは
startScan()
メソッドを
BluetoothLeScanner
は、API 21 で提供されています。私は、このメソッドが必要とするマニフェストのコースと細かい位置情報のパーミッションについては問題ありません。ただ、私のアプリのユーザーが、私のアプリを使用するためにデバイスの位置情報サービス (GPSなど) を有効にする必要がないようにしたいだけです。
以前は
startScan()
メソッドは、携帯電話で位置情報サービスが無効になっていても実行され、結果を返しました。しかし、Marshmallow では、携帯電話で位置情報サービスが有効になっておらず、コース/詳細位置情報のアクセス許可がマニフェストに残っている場合、同じアプリケーションは "スキャン" ですが静かに失敗して結果を返さなくなりました。
どのように解決するのですか?
いいえ、これはバグではありません。
これは 問題 の問題は Google に報告され、Google はこれが意図された動作であり、修正しないと回答しました。彼らは開発者に対し このサイト に誘導し、ハードウェア識別子へのアクセスには位置情報の許可が必要であることを指摘しました。 現在では、開発者の責任において、ユーザーにこの要件を認識させる必要があります。
しかし、この問題では、位置情報サービス (GPS など) が必要な理由には触れておらず、意図された動作としてマークされているため、これを説明するためにこの問題を再訪するつもりはないようです。
質問の 2 番目の部分にお答えします。はい、位置情報サービスを有効にせずにスキャンすることは可能です。Bluetooth クラシック スキャンを行うには
BluetoothAdapter.getDefaultAdapter().startDiscovery()
を使用してBluetoothクラシックスキャンを行うことができます。これは位置情報サービスをオフにしても動作します。これは、BLEおよびそれ以外のすべてのBluetoothデバイスを検出します。しかし、BLE デバイスには、以下のようなスキャン記録が残りません。
startScan()
.
関連
-
[解決済み] Android 4.3 Bluetooth Low Energyの動作が不安定
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] Androidでビットマップから円形領域を切り取る方法
-
[解決済み] Receiver not registered exception error?
-
[解決済み] フラグメントからツールバーを取得する方法
-
[解決済み] Android Studioからプロジェクトを削除する
-
[解決済み] DialogFragment の setCancelable プロパティが機能しない
-
[解決済み] RelativeLayout は LinearLayout よりも高価ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] アンドロイドのスプラッシュスクリーンのサイズは、ldpi、mdpi、hdpi、xhdpiのディスプレイのためのものですか?- 例:1024X768ピクセル(ldpi)。
-
[解決済み] AndroidでビューのonClickイベントをその親に渡すには?
-
[解決済み] AndroidのimageviewがmaxWidthを無視する?
-
[解決済み] Uri.getPath()で実パスを取得する。
-
[解決済み] Android Studioで複数のデバイスでアプリを自動実行する
-
[解決済み] 確認(yes/no)用のDialogPreferenceを実装するには?
-
[解決済み] RelativeLayout は LinearLayout よりも高価ですか?
-
[解決済み] AndroidでJSONオブジェクトをRequestで送信するには?
-
[解決済み] Androidの縦長(回転)ラベルについて