26

Android 6.0 パーミッション システムを使用するようにアプリの 1 つを移行しているときに、エミュレーターを使用してパーミッションをデバッグするのが非常に難しいことに気付きました。

調査結果:

  • requestPermissions()アプリ情報画面で権限を無効にしても、メソッドの使用時に権限付与ダイアログが再表示されません。
  • アプリを再インストールすることが、アプリに権限付与ダイアログを再び表示させる唯一の方法のようです。

Androidエミュレータを使用して権限をデバッグする適切な方法は何ですか?

4

1 に答える 1

42

実際、Android 6.0 のアクセス許可をデバッグするのは非常に簡単です。次の ADB シェル コマンドを使用して、現在のフォアグラウンド アプリ のすべてのアプリのアクセス許可を "インストール状態" にリセットできます。

adb shell pm reset-permissions

注:現在、特定のパッケージの実行時アクセス許可をリセットすることはできません。パッケージ マネージャー (pm) ツールのヘルプ セクションには次のように記載されています。

すべてのランタイム権限をデフォルトの状態に戻します。

reset-permissionsAndroid Studio のターミナル インターフェイスを使用して、コマンドを簡単に実行できます。ADB コマンドは、ADB ディレクトリが PATH システム環境変数に追加されている場合にのみ機能することに注意してください (参照: ADB をパス変数に追加する)。

以下を使用して、特定の権限をリセット/取り消すこともできます。

adb shell pm revoke com.your.package android.permission.WRITE_EXTERNAL_STORAGE

このコマンドの欠点は、アプリを再起動することですが、これによってすべてのアプリのランタイム アクセス許可がリセットされるわけではありません。権限を付与するには、 に置き換えrevokeますgrant

于 2015-12-29T14:16:01.440 に答える