web-dev-qa-db-ja.com

ユーザーも現在のプロセスにもAndroid.permission.ACCESS_COARSE_LOCATIONがありません

私はそれがばかげた質問かもしれないことを知っており、私は以前にすべての同様の質問を紹介しましたが、残念ながら私はこの問題を解決することができました。おそらく、Manifest.xmlファイルの問題です。

場所にアクセスしようとすると、アプリがクラッシュします

ここに私のmanifest.xmlがあります

<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.test.tt.test" >

<application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme" >
    <activity
        Android:name=".sTest"
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>


    </activity>
    <service Android:name="com.test.tt.test.sService">
    <intent-filter>
        <action Android:name="Android.intent.action.MAIN" />

        <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter> </service>
    <service Android:name="com.test.tt.test.sServiceRequest" />

    <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_COARSE_UPDATES" />
    <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission Android:name="Android.permission.ACCESS_WIFI_STATE" />


</application>

実行すると、このエラーがスローされます

 Java.lang.SecurityException: Neither user 11029 nor current process has Android.permission.ACCESS_COARSE_LOCATION.

他の権限と同様です。マニフェストファイルに間違いはありません。感謝感謝

14
user3290805

これは、メニフェストファイルに誤った情報または不正な情報が含まれていることを意味します。これが、アプリによって許可が識別されない理由です。不正なデータを含むANDROIDMANIFESTファイルを削除したことを確認してください。

動作し、すべての許可はApplicationタグの外側にある必要があります

12
JNI_OnLoad

Android Marshmallow以上のデバイスで実行している場合:

デバイスが実行されている場合Android 6.0以上、アプリのターゲットSDKが23以上の場合、アプリはマニフェストに権限をリストするだけでなく、必要な各危険な権限を要求する必要がありますアプリの実行中。

詳細:

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

そして

http://developer.Android.com/guide/topics/security/permissions.html#normal-dangerous

14
sivag1

マニフェストタグのすぐ下にアプリケーションの外部にuses-permissionを移動します

3
adev

許可セクションを移動すると、「ユーザーも現在のプロセスにもAndroid.permission.READ_PHONE_STATEがありません」という問題が解決しました。このフォーラムの皆さん、どうもありがとうございました。他を参照して、私の変更は次のとおりです。

オリジナル:

    <uses-permission Android:name="Android.permission.NFC" />
    <uses-permission Android:name="Android.permission.READ_PHONE_STATE" />


    <uses-feature
        Android:name="Android.hardware.nfc"
        Android:required="true" />

    <activity Android:name=".NfcRead"></activity>
</application>

変更:

    <uses-permission Android:name="Android.permission.NFC" />

    <uses-feature
        Android:name="Android.hardware.nfc"
        Android:required="true" />

    <activity Android:name=".NfcRead"></activity>
</application>

<uses-permission Android:name="Android.permission.READ_PHONE_STATE" />
3
user6175333

この例外は、Android 6以降)のランタイム許可システムに関連しています。ロケーション許可は危険な許可[ ここにチェック ]の下にあるため、以下を満たす必要がありますこれらの許可を処理するための2つの最小要件:

  1. マニフェストで2以下のアクセス許可を宣言(これらのアクセス許可はアプリケーションタグの外部にある必要があります)

    <uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />  
    <uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION " />
    
  2. checkSelfPermission()を使用して実行時に付与された許可を確認し、requestPermissions()を使用して許可を要求します。 =まだ許可されていない場合。

上記の両方をすでに実行し、それでもエラーが発生する場合は、以下を確認してください。

  1. あなたのアプリのtargetSdkVersion(> = 23でなければなりません)[アプリケーションのtargetSdkVersionが23未満に設定されている場合。アプリケーションはまだ新しい許可システムでテストされておらず、同じ古い動作に切り替えます。ユーザーはインストール時にすべての許可を受け入れる必要があり、インストール後にすべて許可されます]。
  2. マニフェストファイルに問題があるかどうかを確認します。マニフェストファイルの形式が正しくない可能性があります。
  3. ユーザーが実行時のロケーション許可ダイアログを受け入れる/取り消す前に、ロケーションデータで機能する関数を呼び出しているかどうかを確認しますか?
  4. アプリをクリーン(クリーンビルド)して再実行します。

これが役立つことを願っています:-)

0
Akki