如果不存在,如何以编程方式下载adobe reader

时间:2012-02-28 10:14:30

标签: android

现在我正在开发一个应用程序。通过我的应用程序用户可以阅读pdf文件,如果没有pdf阅读器,那么我的应用程序将自动从网站安装它。 这是我用来阅读pdf文件的代码。

File file = new File("/sdcard/sample.pdf");
PackageManager packageManager = getPackageManager();
Intent testIntent = new Intent(Intent.ACTION_VIEW);
testIntent.setType("application/pdf");
List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0 && file.isFile()) {
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    Uri uri = Uri.fromFile(file);
    intent.setDataAndType(uri, "application/pdf");
    startActivity(intent);
}

我的怀疑是:

  1. 如何检查手机中是否安装了adobe reader?
  2. 如何以编程方式在手机上安装Adobe阅读器?

2 个答案:

答案 0 :(得分:20)

从你的代码中得到一些复杂的东西..

使用此代码,

Intent intent;
        intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(file, "application/pdf");
        try {
            startActivity(intent);
        } catch (ActivityNotFoundException e) {
            // No application to view, ask to download one
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("No Application Found");
            builder.setMessage("Download one 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();
        }
    }

答案 1 :(得分:2)

我认为这可能会对您有所帮助:

private void loadDocInReader(String doc) throws ActivityNotFoundException, Exception {

try {
    Intent intent = new Intent();

    intent.setPackage("com.adobe.reader");
    intent.setDataAndType(Uri.parse(doc), "application/pdf");

    startActivity(intent);

} 

catch (ActivityNotFoundException activityNotFoundException) {
            activityNotFoundException.printStackTrace();

            throw activityNotFoundException;
} 
catch (Exception otherException) {
            otherException.printStackTrace();

            throw otherException;
}
}

如果未安装Adobe阅读器,您可以将用户拖到此网址:

https://market.android.com/details?id=com.adobe.reader

这将在Android Market移动应用程序中打开Adobe Reader。如果用户想要,他们可以安装。