Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan resultsが解決できない

298 views
Skip to first unread message

岩渕哲也

unread,
Jun 26, 2019, 7:44:04 PM6/26/19
to 日本Androidの会
BLEのscanやGoogleMapを使ったアプリを作りたく奮闘しておりますが
上記エラーが出て解決できずつまづいております。
AndroidManigestに以下は記載していますが、上記エラーとなります。

<uses-feature
 
android:name="android.hardware.bluetooth_le"
 
android:required="true" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />


BLE、GoogleMapそれぞれ別アプリにして単体なら動くのですが。。
build.gradleのcomlipleSdkVersionなどを変更するとダメになるようです。
おそらくBLEのデバイスをスキャンするところでエラーが出ているため、デバイスをスキャンできない状態です。

デバイスをスキャンできる方のアプリのbuild.gradleは以下
apply plugin: 'com.android.application'

android {
    compileSdkVersion
25
    defaultConfig {
        applicationId
"com.hiramine.blecommunicator"
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes
{
        release
{
            minifyEnabled
false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
   
}
}

dependencies
{
    implementation fileTree
(dir: 'libs', include: ['*.jar'])
    androidTestImplementation
('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude
group: 'com.android.support', module: 'support-annotations'
    })
    implementation
'com.android.support:appcompat-v7:25.4.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
}

 エラーが出る方のアプリでは以下となっております。
apply plugin: 'com.android.application'

android {
    compileSdkVersion
28
    defaultConfig {
        applicationId
"com.example.mymapapp"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes
{
        release
{
            minifyEnabled
false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
   
}
}

dependencies
{
    implementation fileTree
(dir: 'libs', include: ['*.jar'])
    implementation
'androidx.appcompat:appcompat:1.0.2'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation('androidx.test.espresso:espresso-core:3.2.0', {
        exclude
group: 'com.android.support', module: 'support-annotations'
    })
    implementation
'com.android.support:appcompat-v7:28.0.0'
}


色々と試してみたのですが、解決できず、、、、
何かヒントでもわかる方がおられましたら、情報をいただけませんでしょうか。

よろしくお願いいたします。


Monxarat

unread,
Jun 27, 2019, 3:33:10 AM6/27/19
to android-g...@googlegroups.com
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
https://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/3f53d321-3e88-40ad-9a48-07cdcf0290c0%40googlegroups.com にアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Hisashi Nakadate

unread,
Jun 27, 2019, 4:05:34 AM6/27/19
to 日本Androidの会
初めまして。中舘と申します。

端末の位置情報モードがOFFになっている時に同じエラーに遭遇したことがあります。

古い記事ですが、その時の調査結果をまとめています。

https://qiita.com/hisanaka/items/518db08d4a700247ec69

T28

unread,
Jun 27, 2019, 7:46:54 AM6/27/19
to 日本Androidの会

Monxaratさん 中舘さん
ありがとうございます。

位置情報をOFFだったので、ONにしてみましたが、それだけではまだダメでした。
targetSdkVersion 21 にすると動くので、23からのパーミッションが関係しているのは間違いないかと思います。

いただいた情報を元にもう一度整理してみます。
ありがとうございました!!!

2019年6月27日木曜日 8時44分04秒 UTC+9 T28:

Yusuke

unread,
Jun 27, 2019, 8:55:08 AM6/27/19
to android-g...@googlegroups.com
SDK version 23以降ということは、
動的にパーミッションが取得出来ていないのではないかと思います。

Android の設定 → アプリと通知 → 対象アプリ → 許可
でパーミッションを確認できます(Android のバージョンによって表示は少し異なる)

もし、この「位置情報」が OFF になっている場合は、手動で ON にすることで動くようになるかと。

Wi-Fi の話ですが、同じように23以降&位置情報パーミッションで動かないケースに遭遇したことがあります。
恒久対策の際は参考になるかもしれません。


2019年6月27日(木) 7:47 T28 <tets...@indelight.jp>:
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
https://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/a2896037-5acd-4f48-aeba-4b0363e43421%40googlegroups.com にアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

T28

unread,
Jun 27, 2019, 11:16:12 AM6/27/19
to 日本Androidの会
 Yusukeさん

ありがとうござます!!!
参考にいただいた、このサイト
このACCES_WIFI_STATEをAndroidManigestへ追記することでエラーが解消されました!
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />


BLEなのにWiFiの設定が必要なのですかね???
少し疑問が残りますが、エラーが消え、DeviceのScanができるようになりました。

みなさま、ありがとうございました、
大変たすかりました!!!

2019年6月27日木曜日 8時44分04秒 UTC+9 T28:

Yusuke

unread,
Jun 27, 2019, 12:40:10 PM6/27/19
to android-g...@googlegroups.com
解決したとのこと、よかったです。

ただ、少し私の意図したのとは違った状況のようです。
本来、Bluetooth のスキャンに ACCESS_WIFI_STATE は必要ないのではないかと思います。
私の経験でも多分、必要なかったと思います。(Wi-Fi と Bluetooth は共に使うことが多いので自信はない…)

今回の件と、 ACCESS_WIFI_STATE がどう関わっているかはわかりませんが、
一つ確かなのは、API Level 23 以降で位置情報を使用したい場合、動的な承認が必ず必要ということです。
つまり、AndroidManifest.xml に以下を書いただけでは、位置情報へのアクセスは許可されません。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  

詳細は以下を参照してください。

最初からこちらをリンク先として挙げておくべきでしたね。
紛らわしいリンクを送ってしまい、申し訳ありません。

なお、パーミッションがらみの問題だった場合、
一度アプリを削除して再度インストールしてみると再現するかもしれません。


2019年6月27日(木) 11:16 T28 <tets...@indelight.jp>:
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
https://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/b030e83a-5387-42ad-ba81-1ededa771b6e%40googlegroups.com にアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

T28

unread,
Jun 27, 2019, 11:46:48 PM6/27/19
to 日本Androidの会
Yusukeさん
ありがとうございます。

はい、ACCESS_WIFI_STATEなのか、疑問ですが、
まずは、エラーなくなったので、一度、先に進めて
時間できましたら、再度検証してみます。
いろいろとご丁寧にありがとうございます。 

2019年6月27日木曜日 8時44分04秒 UTC+9 T28:

Tú Nguyễn

unread,
Jun 27, 2019, 11:55:41 PM6/27/19
to android-g...@googlegroups.com
Hi guys,
please public code github. i fix error :)

このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/CAHJJhYpGhSEuWBUSXVcVcvTA_-2FtSfCcmXOGTKwfJiz_s6vUw%40mail.gmail.com にアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。


--
Best regards !


Nguyễn Văn Tú / Software Engineer

caybang...@gmail.com / 0974107528


Skype : caybangmuathuqn

Hồ Chí Minh - Việt Nam


Reply all
Reply to author
Forward
0 new messages