无需从URL下载即可在默认查看器上显示文件

时间:2018-03-23 07:03:01

标签: android

我正在使用具有String URL响应的webservice,URL可能是.PNG和.PDF我不想从该URL下载图像和pdf文件我想在默认查看器上显示它们,即如果我点击查看图像按钮然后它应该打开图像网址到任何默认的照片查看器,如果我点击查看pdf按钮,那么它应该在默认的PDF浏览器中打开PDF。 请提前帮助谢谢。

    File file = new File(url);
    MimeTypeMap myMime = MimeTypeMap.getSingleton();
    Intent newIntent = new Intent(Intent.ACTION_VIEW);  
    String extension = file.getName().substring(file.getName().indexOf(".") + 1).toLowerCase();
    String mimeType = myMime.getMimeTypeFromExtension(extension); 
    newIntent.setDataAndType(Uri.fromFile(file), mimeType);
    newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try {
        startActivity(newIntent);
    } catch (ActivityNotFoundException e) {
        Toast.makeText(MasterPlan_Activity.this, "No handler for this type of file.", Toast.LENGTH_LONG).show();
    }

1 个答案:

答案 0 :(得分:0)

这里的基本概念是打开一个可以处理资源的应用程序( JPEG或PDF )。因此,您需要使用需要显示的数据URI请求隐式意图。 您可以使用特定过滤器的意图来实现这一点,如下所示

图片:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("content://media/external/images/media/16"))); /** replace with your own uri */

全文:

   Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pdf_url));
startActivity(browserIntent);

private static final String googleDocsUrl = "http://docs.google.com/viewer?url=";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(googleDocsUrl + url), "text/html")