前提・実現したいこと
FusedLocationProviderClientで取得した位置情報を用いて,Map上に位置情報を追加したいと考えています.
既存のプロジェクトにMaps SDK for Androidを追加する途中なのですが,既存の Android Studio プロジェクトを設定するに書かれている,
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
をapplication 要素内に記述すると,MainActivityに記述した
fusedLocationProviderClient.requestLocationUpdates(locationRequest, mLocationCallback, null);
が突然,パーミッション確認をしてくださいとのエラーが発生します.
FusedLocationProviderClientとmapは一緒に使うことが出来ないのでしょうか.
発生している問題・エラーメッセージ
fusedLocationProviderClient.requestLocationUpdates(locationRequest, mLocationCallback, null);// この文に対して以下のエラーメッセージ // error msg Missing permissions required by FusedLocationProviderClient.requestLocationUpdates: android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION
試したこと
ACCESS_COARSE_LOCATION)を記述していなかったため追記しました.しかし,meta-dataの構築前までは,このパーミッションがなくとも動いていたのですが...なぜMaps SDK for Androidを導入するとエラーが起こるのか.
出来ることはやったつもりなのですが,他原因が分からないため,解決策をご教授頂きたいです.
@Override protected void onResume() { super.onResume(); // 位置情報取得権限の確認 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // 権限がない場合、許可ダイアログ表示 String[] permissions = {Manifest.permission.ACCESS_FINE_LOCATION}; ActivityCompat.requestPermissions(this, permissions, 1); return; } // 位置情報の取得方法を設定 LocationRequest locationRequest = LocationRequest.create(); locationRequest.setInterval(5000); // 位置情報更新間隔の希望 30s locationRequest.setFastestInterval(3000); // 位置情報更新間隔の最速値(「これ以上早くは取得したくない」という指定) 15s locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); //ここで赤波線のerror msg fusedLocationProviderClient.requestLocationUpdates(locationRequest, mLocationCallback, null); }
SDK Manager
補足情報(FW/ツールのバージョンなど)
android studio 4.2.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。