想要在Android中的相应应用程序中打开下载的文件

时间:2014-03-21 10:21:27

标签: android android-dialog file-format android-download-manager

我必须从我的服务器下载文档到我的应用程序并保存到私人文件夹中。

该文档可以是.doc, .pdf, .docs, .jpg等等。

现在,我想要的是,在下载完成后,我会显示Alert Dialog来打开文档。

当我点击笔按钮然后在相应的应用程序中打开该特定文件时,如果该应用程序不可用,则显示Dialog以下载应用程序。

给我一​​些暗示。

提前致谢。

2 个答案:

答案 0 :(得分:2)

尝试这种方式:

邮件附件打开

        File file = new File(yourdownloadfilePATH);

        if ((download_file_name.endsWith(".pdf")) || (download_file_name.endsWith(".PDF"))){            

            if(file.exists() && file.length()!=0){

            Intent intent = new Intent();

            intent.setClassName("com.adobe.reader","com.adobe.reader.AdobeReader");

            intent.setAction(android.content.Intent.ACTION_VIEW);

            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            Uri uri = Uri.fromFile(file);

            intent.setDataAndType(uri, "application/pdf");

            try {

                startActivity(intent);

            } catch (Exception e) {

                                AlertDialog.Builder builder = new AlertDialog.Builder(youractivity.this);
                                builder.setTitle("No Application Found");
                                    builder.setMessage("Download application from Android Market?");
                                    builder.setPositiveButton(
                                            "Yes, Please",
                                            new DialogInterface.OnClickListener() {
                                                @Override
                                                public void onClick(
                                                        DialogInterface dialog,
                                                        int which) {
                                                    Intent marketIntent = new Intent(
                                                            Intent.ACTION_VIEW);
                                                    marketIntent.setData(Uri
                                                            .parse("market://details?id=com.adobe.reader"));
                                                    startActivity(marketIntent);
                                                }
                                            });
                                    builder.setNegativeButton("No, Thanks",
                                            null);
                                    builder.create().show();
            }

    }
 }  else if ((download_file_name.endsWith(".jpg"))||  (download_file_name.endsWith(".bmp"))||
(download_file_name.endsWith(".BMP"))||(download_file_name.endsWith(".png"))||  (download_file_name.endsWith(".PNG"))||(download_file_name.endsWith(".gif"))||   (download_file_name.endsWith(".GIF"))||
                            (download_file_name.endsWith(".JPG"))) {

        Intent intent = new Intent();
        intent.setAction(android.content.Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(file), "image/*");       
        startActivity(intent);

    }
else if ((download_file_name.endsWith(".txt"))) {


    Intent intent = new Intent();
    intent.setAction(android.content.Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.fromFile(file), "text/html");
    startActivity(intent);

}

答案 1 :(得分:2)

不确定,但我认为这会对你有所帮助:

Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(your_file);
String extension = file .split("\\.");

//For text extensions like text or any textfiles
if(extension == txt){
 intent.setDataAndType(Uri.fromFile(file), "test/*");
}

//For audio extensions like  mp3 or any audio files
else if(extension == mp3 ){ 
 intent.setDataAndType(Uri.fromFile(file), "audio/*");
}

//For video extensions like mp4 or any video files
else if(extension == mp4){
 intent.setDataAndType(Uri.fromFile(file), "video/*");
}
startActivity(intent);