2

Android のアクセス許可を動的に要求することは可能ですか?

4

4 に答える 4

3

はい、デバイスが Android 6.0 以降を実行しており、アプリのターゲット SDK が 23 以降の場合。

コードスニペット:

if(ContextCompat.checkSelfPermission(getApplicationContext(),Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
            }
            int result = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_PHONE_STATE);
            if (result == 0)
                 // function which uses the permission
}
于 2016-01-07T04:48:55.260 に答える
-1

このソリューションは、API < 23 をターゲットとするデバイスに対応します。23 以上については、Aunの回答を参照してください。

多くの人がこの質問に NO と答え、セキュリティ リスクであると言うでしょうが、私は方法を見つけました!

Android用の有名なファイルマネージャーアプリケーションの1つであるASTRO File Managerを見てみましょう。SD-CARD を参照し、画像、ビデオ、および最も興味深いものを表示し、APK をインストールできます。

理論的には、インストール時にインターネット アクセスを要求しないアプリを作成した場合、Raw ライブラリ内に APK を添付して実行時にインストールし、そこにすべてのアクセス許可を配置することができます。その後は、わずか 1 メートルのアプリケーション通信で簡単です。ブロードキャストまたは共有アプリケーション ID を使用してこれを行うことができます (リスクがある可能性があるため、最初に読んでください)。

ユーザーの経験からすると、実行時に許可を求めているように見えます。

于 2012-12-28T11:43:41.287 に答える