1

こんにちは、私は自分のアプリを作成していますが、いくつかのアクセス許可を忘れてしまったのではないかと心配しており、正しいアクセス許可を使用していることを本当に確信できません。私のアプリが実際に何を使用しているかを確認するために、任意の種類のコードを挿入できますか? または、パーミッションを選択するときは、確信が持てないため、常に推測ゲームであるため、そのようなものです。

「更新の確認」ボタンを作成する例を次に示します。そこから、市場で自分のアプリに移動するインテントを起動しますが、それはインターネット接続を使用することですか? または、データ接続が機能していない人もいるため、インテントを使用しているだけなので、完全なネットワークへのアクセスなどを書き込む必要がありますか? それは本当に私を混乱させます

4

2 に答える 2

0

以下は、パーミッションを順を追って説明する例です。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    PackageManager pm = getPackageManager();
    try {
        PackageInfo pi = pm.getPackageInfo("<INTERESTING PACKAGE NAME>", PackageManager.GET_PERMISSIONS);
        if ((null == pi.requestedPermissions) ||
            (pi.requestedPermissions.length == 0)) {
            Log.d("NOTE", "Package has NO permissions!");
            return;
        }

        for (int i = 0; i < pi.requestedPermissions.length; ++i) {
            Log.d("NOTE", pi.requestedPermissions[i] + " " + checkCallingOrSelfPermission(pi.requestedPermissions[i]));
        }
    } catch (NameNotFoundException e) {
        Log.d("ERR", "Package name is wrong!");
    }
}

編集:あなたの質問は、アプリが使用している権限を尋ねているようです。このコードは、リクエストした権限をアプリに伝えます。何が使用されているかを知りたい場合は、アプリからすべてのアクセス許可を削除する必要があります (実際にそれらのいずれかが必要な場合は実行時エラーが発生します)。その後、エラー ログを読み取ったり、正しく機能するまでアクセス許可を段階的に追加したりします。 、実際に必要なものを手で決定します。

于 2013-05-28T11:48:24.080 に答える