2010-12-02 43 views
2

我們正在從服務器下載文件並將其寫入SD卡上的文件夾。寫入完成後,我們會在該文件夾上執行介質掃描。當用戶試圖打開要查看的文件,我們試圖在了Android的意圖機制,充分利用和提高的意圖如下:使用Intents打開最近寫入的文件

Intent myIntent = new Intent(Intent.ACTION_VIEW,Uri.fromFile(tempFile)); 
// MIME_TYPE could be either of: image/*, video/*, audio/*, text/* 
myIntent.setType(MIME_TYPE); 
startActivity(Intent.createChooser(myIntent, "Open file using...")); 

在仿真器,相機應用程序啓動此意圖,但該應用程序崩潰與NPE。而在MOTOROLA Milestone上,我們得到了一個Toast,上面寫着:「沒有圖像顯示」。請注意,掃描完成後,照片實際上會在模擬器和手機的媒體庫中顯示。

不知道這裏錯過了什麼;請幫忙。

回答

1

奇怪的是,從

Intent myIntent = new Intent(Intent.ACTION_VIEW,Uri.fromFile(tempFile)); 
// MIME_TYPE could be either of: image/*, video/*, audio/*, text/* 
myIntent.setType(MIME_TYPE); 

更改爲

Intent myIntent = new Intent(Intent.ACTION_VIEW); 
// MIME_TYPE could be either of: image/*, video/*, audio/*, text/* 
myIntent.setDataAndType(Uri.fromFile(tempFile), MIME_TYPE); 

工作!