2016-07-29 27 views
0

現在、アプリにAndroid Nサポートを追加しようとしています。私はそうのように、外部記憶装置上の私のアプリの格納ディレクトリを読み取るための、新しいScoped Directory Access APIを使用しています:スコープディレクトリアクセスAPIがNullPointerExceptionをスローする

public void requestExternalStoragePermissions(int requestCode) { 
    StorageManager sm = (StorageManager)getContext().getSystemService(Context.STORAGE_SERVICE); 
    StorageVolume volume = sm.getPrimaryStorageVolume(); 
    Intent intent = volume.createAccessIntent("MyApp"); 
    startActivityForResult(intent, requestCode); 
} 

はしかし、私はstartActivityForResultNullPointerExceptionを取得しています:私は間違って

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference 
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1635) 
    at android.app.Activity.startActivityForResult(Activity.java:4858) 
    at android.app.Activity.startActivityFromFragment(Activity.java:4844) 
    at android.app.Activity$HostCallbacks.onStartActivityFromFragment(Activity.java:7125) 
    at android.app.Fragment.startActivityForResult(Fragment.java:1150) 
    at android.app.Fragment.startActivityForResult(Fragment.java:1139) 
    .... 

何をしているのですか?

これらのファイルは、ファイルマネージャのユーザが簡単にアクセスできる必要があります。したがって、getExternalFilesDir()で、オプションはです。

答えて

1

新しいScoped Directory Access APIは、標準メディアディレクトリ(DocumentsMusicPicturesなど)のみをサポートしています。 API reference for StorageVolume.createAccessIntent(String directoryName)から

directoryName:ボリューム全体へのアクセスを要求するDIRECTORY_MUSICの一つ、DIRECTORY_PODCASTSDIRECTORY_RINGTONESDIRECTORY_ALARMSDIRECTORY_NOTIFICATIONSDIRECTORY_PICTURESDIRECTORY_MOVIESDIRECTORY_DOWNLOADSDIRECTORY_DCIM、又はDIRECTORY_DOCUMENTS、又はnullなければなりません。

関連する問題