2017-06-27 75 views
0

我用ChooserIntent將文件添加到我的應用程序。FileUriExposedException同時下載從OneDrive文件與ChooserIntent

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 
intent.setType("*/*"); 
Intent chooserIntent = Intent.createChooser(intent,"Choose file to import"; 
startActivityForResult(chooserIntent, FILE_REQUEST_CODE); 

通常,例如選擇一個文件,例如從內部或外部存儲圖片時,它返回一個內容://烏里在onActivityResult()。這也正常工作與Dropbox和大多數其他存儲介質,但使用OneDrive時,它返回一個文件://烏里導致Android SDK中一個FileUriExposedException 24+。

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=42, result=-1, data=Intent 
    { act=android.intent.action.GET_CONTENT dat=file:///data/user/0/com.microsoft.skydrive/no_backup/stream_cache/[email protected]/5761/bewerbung.rtf typ=text/rtf flg=0x1000003 cmp=com.microsoft.skydrive/.intent.getcontent.ReceiveGetContentActivity }} 
    to activity {com.android.documentsui/com.android.documentsui.picker.PickActivity}: 
    android.os.FileUriExposedException: file:///data/user/0/com.microsoft.skydrive/no_backup/stream_cache/[email protected]/5761/bewerbung.rtf exposed beyond app through Intent.getData() 

我不是如何讓OneDrive返回文件與內容:// URI(最好)或避免崩潰我的應用程序異常?

+0

你確定你使用的是最新OneDrive應用?他們本應該在〜9個月前解決這個問題,那就是Android 7.0的出貨時間。您可以通過將'targetSdkVersion'設置爲24以避免此問題,但這只是一個臨時解決方案。 – CommonsWare

+0

是的,我是用從6月21日的最新版本,我想我會發送消息到Onedrive支持,看看他們有什麼建議,或者如果他們可以改變任何事情。謝謝 :) –

回答

0

因此很明顯,微軟只是沒有意識到這個問題,並固定它及時我發了支持票之後。很大的支持,但他們應該有固定的問題,推出API的24

相關問題