8

私はIntent.ACTION_OPEN_DOCUMENT_TREEを使用して、アプリケーションを外部ストレージ(LollipopとMarshmallow)への書き込みアクセスを許可しています。テストアプリケーションのストレージアクセスフレームワーク

しかし、私はテストアプリケーションの外部ストレージに書き込みたいと思います。 Intent.ACTION_OPEN_DOCUMENT_TREEはシステムダイアログを使用しているため、テスト中に許可を与えることはできません。私はまた、アプリケーションでそれを許可してからテストで使用しようとしましたが、共有されていません - アプリケーションプロジェクトとテストプロジェクトは異なるパッケージです。

誰かが回避策を知っていますか?テスト目的で外部ストレージ全体に許可を与えますか?おそらく、いくつかのシステムプロパティを変更することによって?

adb shell setprop SOMEPROPERTY 1

答えて

1

あなたは、これは、読み取りのための

adb pm grant com.package.myapp android.permission.<PERMISSION> 
adb pm revoke com.package.myapp android.permission.<PERMISSION> 

権限/外部ストレージを書く付与と取り消しの権限のためにコマンドを試すことができます。ここ

android.permission.WRITE_EXTERNAL_STORAGE 
android.permission.READ_EXTERNAL_STORAGE 

ていることがあるビデオへのリンクです説明:Runtime Permissions in Android 6.0 Marshmallow (Android Development Patterns Ep 3)

+0

残念ながら、これは主な外部ストレージへのアクセスのための唯一の代替品です。 2番目の外部ストレージにIntent.ACTION_OPEN_DOCUMENT_TREEを使用してアクセスする必要があり、この機能をテストする必要があります。 – Bhiefer

0

ここでは、回避策として、許可許可のチェックボックスにadbシェル入力キーイベントを使用できます。

使用法:

adb shell input [text|keyevent] 
    adb shell input text <string> 
    adb shell input keyevent <event_code> 

More Details you can find here.

+0

私はテストアプリケーションで許可を与える必要があります。しかし、私はシステムをどのように "Open with"ダイアログをTESTアプリケーションに表示するかを知ることさえできないので、それを与えることができます。このadbシェルを入力するか、手動で入力します。例はありますか? – Bhiefer