2010-12-02 46 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); 

工作!