web-dev-qa-db-ja.com

デバッグ/リセットの方法Android 6.0権限?

Android 6.0アクセス許可システムを使用するように私のアプリの1つを移行しているときに、エミュレータを使用してアクセス許可をデバッグするのは非常に困難であることがわかりました。

調査結果:

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

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

18
Rolf ツ

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

adb Shell pm reset-permissions

注:現在、ランタイムアクセス許可をリセットすることはできません特定のパッケージ、パッケージマネージャー(pm)ツールのヘルプセクションの状態:

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

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

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

adb Shell pm revoke com.your.package Android.permission.WRITE_EXTERNAL_STORAGE

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

29
Rolf ツ