アプリケーションにAndroidManifest権限が設定されていないのはなぜですか

リアム・フリーク

私はAndroid開発にまったく慣れていませんが、以前はJava(およびその他のプログラミング言語)を使用していました。

Android Studioを使用してアプリケーションを開発していますが、場所情報へのアクセスに関する開発者向けチュートリアル(http://developer.android.com/training/location/index.htmlに従うと行き詰まります位置情報サービスにはandroid.permission.ACCESS_COARSE_LOCATIONおよび/またはandroid.permission.ACCESS_FINE_LOCATION権限が必要であることを理解していますが、それらをApplicationManifestに追加しても、アプリケーションがSecurityExceptionでクラッシュします

java.lang.SecurityException: Client must have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location operations.

他にも問題が発生している例がいくつかありますが、これらは通常、配置ミス(java.lang.SecurityException:ACCESS_FINE_LOCATIONまたはACCESS_COARSE_LOCATION権限が必要)、スペルミス(ACCESS_FINE_LOCATION AndroidManifest権限が付与されていない)または許可文字列の大文字と小文字が正しくありません。

これが私のApplicationManifest.xmlです

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

    <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_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="23" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher_tt_v2"
        android:label="@string/app_name"
        android:theme="@style/TT_Theme">
        <activity
            android:name=".MainActivity"
            android:theme="@style/TT_Theme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".LoginActivity" android:theme="@style/TT_Theme.NoActionBar" />
        <activity android:name=".IndexActivity" />
    </application>

</manifest>

アプリケーションがロケーション情報を取得しようとする前にHTTPサーバー(正常に実行される)と通信する必要があるため、ACCESS_NETWORK_STATEとINTERNETを削除して、他のSecurityExceptionsが発生するかどうかを確認しようとしました。

プログラムの実行時に、AndroidManifestのアクセス許可に加えた変更が更新されていないようです。また、[ビルド]メニューを使用してアプリケーションをクリーンアップして再ビルドしようとしました。

更新:

これがアクティビティのコアです。無関係なメソッドのいくつかを削除しました(onCreateOptionsMenu()やonBackPressed()など、場所とは関係がないため)

package scd.tt;

import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.location.Location;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;

import java.util.Map;

/**
 * Created by Liam on 08/09/2015
 */
public class IndexActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {

    private GoogleApiClient mGoogleApiClient;
    private LocationRequest mLocationRequest;
    private Location mLastLocation;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_index);
        if(debug) Log.d(TAG, "onCreate() called: savedInstanceState is " + (savedInstanceState == null ? "null" : "not null"));

        mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(10000);
        mLocationRequest.setFastestInterval(1000);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
        buildGoogleApiClient();

        if (findViewById(R.id.index_fragment_container) != null) {
            if (savedInstanceState != null) return;

            Fragment index = new IndexFragment();
            index.setArguments(getIntent().getExtras());

            getFragmentManager().beginTransaction().add(R.id.index_fragment_container, index).commit();
        }
    }


    @Override
    protected void onStart() {
        super.onStart();
        mGoogleApiClient.connect();
    }

    @Override
    protected void onStop() {
        super.onStop();
        mGoogleApiClient.disconnect();
    }

    @Override
    public void onConnected(Bundle bundle) {
        if(debug) Log.d(TAG, "onConnected");
        mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
        startLocationUpdates();
    }

    @Override
    public void onConnectionSuspended(int i) {
        if(debug) Log.d(TAG, "Connection Suspended");
    }

    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {
        if(debug) Log.d(TAG, "Connection Failed");
    }

    @Override
    public void onLocationChanged(Location location) {
        mLastLocation = location;
    }

    protected synchronized void buildGoogleApiClient() {
        mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .build();
        if(debug) Log.d(TAG, "buildGoogleAPIClient()");
    }

    protected void startLocationUpdates() {
        LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
    }
}
Techidiot

これらの3つのリンクを確認してください。彼らは助けるかもしれません-

  1. Android-エミュレータでGPSの場所を取得できません
  2. ACCESS_FINE_LOCATIONパーミッションエラーエミュレーターのみ
  3. http://www.gitshah.com/2011/02/android-fixing-no-internet-connection.html

コメントであなたが引用したように-

危険な保護レベルのアクセス許可は、SDK 23の時点でユーザーにプロンプ​​トを表示して実行時に付与する必要があり、マニフェストだけで定義することはできなくなりました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アプリケーションにAndroidManifest権限が設定されていないのはなぜですか

分類Dev

流星の設定がアプリケーションに渡されないのはなぜですか?

分類Dev

Azure ADの「リクエストAPI権限」で「アプリケーション権限」が無効になっているのはなぜですか?

分類Dev

アプリケーションにSUIDが設定されているのに、なぜコアダンプが作成されないのですか?

分類Dev

アプリケーションにSUIDが設定されているのに、なぜコアダンプが作成されないのですか?

分類Dev

警告が表示されるのはなぜですか?最新バージョンではこれらの権限が必要ないのに、このアプリはGoogle Playの権限ポリシーを満たしていませんか?

分類Dev

この汎用リストがアプリケーション設定に保存されないのはなぜですか?

分類Dev

Androidの権限はデフォルトで設定されており、アプリケーションはそれらがオフになっているかどうかを認識しません

分類Dev

Hibernateを使用して、必要な特権が複数のデータベースアプリケーションに正しく設定されているかどうかを確認するにはどうすればよいですか?

分類Dev

Androidでアプリケーションの権限設定を取得して画面に表示するにはどうすればよいですか?

分類Dev

オプションが設定されていないのに、AJAXbeforeSendおよびcomplete関数が複数回トリガーされるのはなぜですか

分類Dev

アプリケーションがすでに実行されているときにapplication:openFile:が呼び出されないのはなぜですか?

分類Dev

/ usr / binで権限が変更されると、一部のアプリケーションが機能しなくなるのはなぜですか?

分類Dev

アプリケーションを再起動しない限り、パスワードの変更が反映されないのはなぜですか?

分類Dev

アプリの起動時にアプリケーションの権限が検出されない

分類Dev

MobileFirstアプリケーションストアアプリにMobileFirstアプリのアイコンが表示されないのはなぜですか

分類Dev

アプリケーションで「プット」が使用されないのはなぜですか?

分類Dev

アプリケーションで「プット」が使用されないのはなぜですか?

分類Dev

私のAndroidアプリは、AndroidManifest.xmlで設定されていない権限を突然必要とします。どうして?

分類Dev

SwiftUIアプリケーションでObservedObject配列が更新されないのはなぜですか?

分類Dev

Mac アプリケーションが「クローズ」されないのはなぜですか?

分類Dev

PyGameアプリケーションがまったく実行されないのはなぜですか?

分類Dev

権限が設定されているのに SSH シェルを起動できないのはなぜですか?

分類Dev

さまざまなセキュリティ権限でServiceFabricアプリケーションを実行するにはどうすればよいですか?

分類Dev

SparkアプリケーションのWebUIにDAGの視覚化が表示されないのに、History Serverには表示されるのはなぜですか?

分類Dev

このopenglアプリケーションで黒い画面が表示されるのはなぜですか?

分類Dev

ドメイン管理者がアプリケーションに権限を付与することなく、現在ログオンしているユーザーのAzure ADグループを取得するにはどうすればよいですか?

分類Dev

LockTaskモードが有効になっているAndroidアプリケーションでUSBフラッシュドライブと通信するためのランタイム権限を取得するにはどうすればよいですか?

分類Dev

Androidの設定/アプリにインストールされていないアプリケーション

Related 関連記事

  1. 1

    アプリケーションにAndroidManifest権限が設定されていないのはなぜですか

  2. 2

    流星の設定がアプリケーションに渡されないのはなぜですか?

  3. 3

    Azure ADの「リクエストAPI権限」で「アプリケーション権限」が無効になっているのはなぜですか?

  4. 4

    アプリケーションにSUIDが設定されているのに、なぜコアダンプが作成されないのですか?

  5. 5

    アプリケーションにSUIDが設定されているのに、なぜコアダンプが作成されないのですか?

  6. 6

    警告が表示されるのはなぜですか?最新バージョンではこれらの権限が必要ないのに、このアプリはGoogle Playの権限ポリシーを満たしていませんか?

  7. 7

    この汎用リストがアプリケーション設定に保存されないのはなぜですか?

  8. 8

    Androidの権限はデフォルトで設定されており、アプリケーションはそれらがオフになっているかどうかを認識しません

  9. 9

    Hibernateを使用して、必要な特権が複数のデータベースアプリケーションに正しく設定されているかどうかを確認するにはどうすればよいですか?

  10. 10

    Androidでアプリケーションの権限設定を取得して画面に表示するにはどうすればよいですか?

  11. 11

    オプションが設定されていないのに、AJAXbeforeSendおよびcomplete関数が複数回トリガーされるのはなぜですか

  12. 12

    アプリケーションがすでに実行されているときにapplication:openFile:が呼び出されないのはなぜですか?

  13. 13

    / usr / binで権限が変更されると、一部のアプリケーションが機能しなくなるのはなぜですか?

  14. 14

    アプリケーションを再起動しない限り、パスワードの変更が反映されないのはなぜですか?

  15. 15

    アプリの起動時にアプリケーションの権限が検出されない

  16. 16

    MobileFirstアプリケーションストアアプリにMobileFirstアプリのアイコンが表示されないのはなぜですか

  17. 17

    アプリケーションで「プット」が使用されないのはなぜですか?

  18. 18

    アプリケーションで「プット」が使用されないのはなぜですか?

  19. 19

    私のAndroidアプリは、AndroidManifest.xmlで設定されていない権限を突然必要とします。どうして?

  20. 20

    SwiftUIアプリケーションでObservedObject配列が更新されないのはなぜですか?

  21. 21

    Mac アプリケーションが「クローズ」されないのはなぜですか?

  22. 22

    PyGameアプリケーションがまったく実行されないのはなぜですか?

  23. 23

    権限が設定されているのに SSH シェルを起動できないのはなぜですか?

  24. 24

    さまざまなセキュリティ権限でServiceFabricアプリケーションを実行するにはどうすればよいですか?

  25. 25

    SparkアプリケーションのWebUIにDAGの視覚化が表示されないのに、History Serverには表示されるのはなぜですか?

  26. 26

    このopenglアプリケーションで黒い画面が表示されるのはなぜですか?

  27. 27

    ドメイン管理者がアプリケーションに権限を付与することなく、現在ログオンしているユーザーのAzure ADグループを取得するにはどうすればよいですか?

  28. 28

    LockTaskモードが有効になっているAndroidアプリケーションでUSBフラッシュドライブと通信するためのランタイム権限を取得するにはどうすればよいですか?

  29. 29

    Androidの設定/アプリにインストールされていないアプリケーション

ホットタグ

アーカイブ