私は現在Android mの新しい権限システムで遊んでいます。私が計画しているのは、ユーザーが権限を付与または取り消すことができる画面をアプリ内設定に追加することです。
画面は通常のシステム設定画面のように見えますが、アプリに特定の権限が必要な理由に関する追加情報が表示されます。この設定画面は、 Documentation で提案されている通常の権限処理に追加されます。
ワークフローは次のとおりです。
だから私の質問は、アクセス許可をプログラムで取り消すことはできますか?何度も検索しましたが、結果が得られませんでした。
あなたは(少なくとも今まで)何もすることができません。さらに、アプリのアクティビティシステム設定を開くためのインテントアクションはありません。私の提案は、開発者プレビューの課題追跡で「機能リクエスト」を開くことです。
ADBシェルから権限を取り消すことができます。シェルスクリプトを記述し、これをすべてプログラムで行うことを検討している場合は、はい
新しいADBパッケージマネージャー(pm)コマンドを使用して、インストールされているアプリへのアクセス許可を付与および取り消すことができます。この機能は、自動テストに役立ちます。
権限を付与するには、パッケージマネージャのgrantコマンドを使用します。
$ adb Shell pm grant <package_name> <permission_name>
たとえば、オーディオを録音する権限をcom.example.myappパッケージに付与するには、次のコマンドを使用します。
$ adb Shell pm grant com.example.myapp Android.permission.RECORD_AUDIO
権限を取り消すには、パッケージマネージャーのrevokeコマンドを使用します。
$ adb Shell pm revoke <package_name> <permission_name>
いいえプログラム的にはできませんAndroid M新しいプレビュー権限モデルでのプレビュー。
しかし手動であなたは与えられたように行うことができます。 権限を手動で取り消す
sYSTEM_ALERT_WINDOWなどの特別な権限。あなたはこれを必要とします :
adb Shell appops set <package_name> SYSTEM_ALERT_WINDOW allow