目前,FileProvider getUriForFile方法生成拋出:IllegalArgumentException當文件上的外部SD的Android - FileProvider getUriForFile當文件上的外部SD
當該文件是在設備存儲器(下/存儲/模擬/ 0 ),它工作正常。
Uri videoUri = FileProvider.getUriForFile(this,
getApplicationContext().getPackageName() + ".provider",
new File(videoPath));
這裏將videoPath有以下值:
videoPath = /storage/extSdCard/Android/data/com.podcastcutter.debug/files/episodeMp3/TEDTalks (video)/Why you should love statistics - Alan Smith.mp4
我的清單文件包含:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
這裏的provider_paths:
<external-path name="external_files" path="."/>
我如何修改FileProvider配置ñ解決這個問題?
在此先感謝。
異常生成:
java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/extSdCard/Android/data/com.podcastcutter.debug/files/episodeMp3/TEDTalks (video)/Why you should love statistics - Alan Smith.mp4
android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711)
android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
其他配置信息:
compileSdkVersion 25
buildToolsVersion "23.0.3"
minSdkVersion 16
targetSdkVersion 25
support libraries version : 25.1.1
您更好的擴展ContentProvider類。然後,您可以提供來自每個存儲位置的文件。更靈活。 – greenapps