Android 11で権限ダイアログが表示されない 質問する

Android 11で権限ダイアログが表示されない 質問する

私のアプリでは、4つの権限にアクセスする必要があります(マニフェストですでに宣言されています)

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

私のコードでは、すでに権限を持っているかどうかを確認し、持っていない場合は次の操作を行います。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermissions(
                    arrayOf(
                          Manifest.permission.ACCESS_FINE_LOCATION,
                          Manifest.permission.ACCESS_COARSE_LOCATION,
                          Manifest.permission.ACCESS_BACKGROUND_LOCATION), 1)
            } else {
                ActivityCompat.requestPermissions(this, arrayOf(
                  Manifest.permission.ACCESS_FINE_LOCATION,
                  Manifest.permission.ACCESS_COARSE_LOCATION,
                  Manifest.permission.ACCESS_BACKGROUND_LOCATION), 1)
            }

このコードは、29 API を備えたエミュレータでは動作します。しかし、私のデバイスでは、権限ポップアップが表示されません。なぜかご存知ですか?

ベストアンサー1

API 30 をターゲットとする Android アプリは、通常の位置情報の許可と同時に BACKGROUND_PERMISSION を要求することはできなくなりました。2 つの別々の要求に分割する必要があります。

  1. 通常のフォアグラウンド位置情報の許可を求め、許可されると、
  2. 新しいリクエストでBACKGROUND_LOCATION権限を要求する

おすすめ記事