1. ホーム
  2. android

[解決済み] Manifest.permission.ACCESS_FINE_LOCATION を解決できません。

2023-06-24 09:34:40

質問

マニフェストファイルにパーミッションを追加する際、以下のxmlが動作します。

 <permission android:name="android.permission.ACCESS_FINE_LOCATION" />

しかし、このxmlはうまくいきません。

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

どちらを使えばいいのでしょうか?もし最初のものなら、なぜうまくいかないのでしょうか?どうすれば直るのでしょうか?

また、Android 6.0 のランタイム権限関連の例外が発生します。

java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.

パーミッションを確認するためにString配列にパーミッションを追加しようとすると、Android Studioが解決できないとして Manifest.permission と表示されます。

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

なぜこのようなことが起こるのでしょうか?どうすれば直るのでしょうか?

どのように解決するのですか?

最初の部分については <uses-permission> Android Devlopersのサイトによると . パーミッションの宣言を確認してみてください 直接 の下に <manifest> タグの中ではなく <application> タグではありません。マニフェスト ファイル全体を確認しない限り、何が問題なのかを知ることは困難です。 上に投稿したリンクをチェックアウトする を参照してください。

実行時のパーミッションの問題に関して。

uses-permissions で解決できない。

new String[]{Manifest.permission.ACCESS_FINE_LOCATION} を解決できません。

なぜですか?

必ず android.Manifest の代わりに my.app.package.Manifest . 多くの場合、Android Studioは前者ではなく後者をデフォルトとします。

ですから、新しいコードの行は次のようになります。

new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};

編集:私は私の答えを再フォーマットしました。

編集2:インポートに注意すること android.Manifest . それは をインポートしている場合、問題を引き起こします。 my.app.package.Manifest . その他に import android.Manifest はこの問題を解決するもう一つの有効な方法です。