2013-01-03 14 views
2

當我的應用程序第一次運行時,我正在生成一堆圖像文件,然後在稍後嘗試使用remoteViews.setImageViewUri()將這些圖像放入我的ImageView中。然而,當我運行應用程序,我看到resolveUri在應用程序私人數據文件上失敗

01-03 15:05:11.252:W/ImageView的(137):無法打開內容: 文件:///數據/數據/ COM。 nickavv.cleanwidgets/files/batt_s_19.png 01-03 15:05:11.252:W/ImageView(137):java.io.FileNotFoundException: /data/data/com.nickavv.cleanwidgets/files/batt_s_19.png(權限 拒絕)

由於文件是由這個應用程序創建的,我應該有權限在此應用程序內訪問它,對嗎?這裏是我用來檢索它的代碼:

File file = new File(context.getFilesDir().getPath(), idName+".png"); 
    Uri newUri = Uri.fromFile(file); 
    myViews.setImageViewUri(id, newUri); 

有什麼想法?

回答

0

而不是使用Uri.parse,請使用Uri.fromfile

Uri newUri = Uri.fromFile(file); 
+0

這改變了我的錯誤爲: '01-03 15:05:11.252:W/ImageView的(137):無法打開內容:文件:///data/data/com.nickavv.cleanwidgets/文件/ batt_s_19.png 01-03 15:05:11.252:W/ImageView(137):java.io.FileNotFoundException:/data/data/com.nickavv.cleanwidgets/files/batt_s_19.png(權限被拒絕) ' 爲了清晰起見,添加爲原始帖子 – Nick

+0

這是一個權限問題。該URI是正確的,但您不被允許訪問該文件。您的'RemoteView'與生成圖像的過程不同嗎? – iagreen

+0

圖像是在小部件的OnEnabled方法中生成的,我試圖在OnUpdate方法中訪問它們。我的印象是,只要我在相同的應用程序中訪問它們,我就可以訪問私人文件。 – Nick

相關問題