1

以前に尋ねた質問のフォローアップの質問をしています - > http://stackoverflow.com/questions/33607410/background-monitoring-of-eddystone-beacon-using-altbeacon-library-on-android-pla/33613116? noredirect=1#comment55139316_33613116 .

Android 6.0を実行しているnexus 5デバイスでビーコンを実行しようとすると、同じコードがビーコンを検出できないことが判明するまで、フォアグラウンドとバックグラウンドの両方でビーコンを正常に検出できました。なぜこれが起こっているのか、誰でも説明できますか? ありがとう。

4

2 に答える 2

1

Android 6.0 では、ビーコンを検出できるようにするために、実行時に位置情報のアクセス許可を要求する必要があります。

最初のテストから: アプリが SDK < 23 (つまり、Android 6.0 より前) をターゲットにしている場合、バックグラウンドでビーコンを検出するためにこれらのアクセス許可のみが必要になります。アプリが SDK >= 23 (つまり、Android 6.0 以降) をターゲットにしている場合、バックグラウンドとフォアグラウンドの両方でビーコンを検出するためにこれらのアクセス許可が必要になります。どちらの場合も、Android 6.0 デバイスで位置情報を有効にする必要があります。

Google には、実行時のアクセス許可の確認と要求を実装する方法に関する詳細なガイドがあります。

http://developer.android.com/training/permissions/requesting.html

具体的には、 または のいずれかが必要ACCESS_FINE_LOCATIONですACCESS_COARSE_LOCATION。どちらも実際には同じメッセージ (「APP_NAME に位置情報へのアクセスを許可しますか?」) がユーザーに表示されます。

于 2015-11-13T10:56:08.207 に答える