0

我知道此类问题已在 SO 上多次回答。但我无法找到适合我要求的答案。

我需要知道客户端上是否安装了 Adob​​e Reader for Android。如果没有从应用程序触发阅读器的安装,然后查看 pdf...

我在 Android 上有点像新手...感谢您使用代码流程..

感谢你..

4

2 回答 2

0

如果您想在未安装 Reader 的情况下链接到市场,您可以在 Activity 中触发此 Intent:

Intent marketIntent = new Intent(Intent.ACTION_VIEW)
.setData(Uri.parse("market://details?id=com.adobe.reader"));
startActivity(marketIntent);

查看 PDF 有点棘手:

Intent showPDFIntent = new Intent();
showPDFIntent.setPackage("com.adobe.reader");
showPDFIntent.setDataAndType(Uri.fromFile(myPDFFile), "application/pdf");
startActivity(showPDFIntent);

我希望这有帮助。

最好的祝愿,蒂姆

于 2012-04-24T06:47:45.707 回答
0

嗨 Kunal 我已经为你写了一些代码请交叉验证因为我还没有测试过

public static final String QUICK_OFFICE_URL = "https://market.android.com/search?q=quick+office&so=1&c=apps";
    public static final String QUICK_OFFICE_TRIAL_PACKAGE = "com.qo.android.am3.trial";
    public static final String QUICK_OFFICE_PACKAGE = "com.qo.android.am3";
    public static final String ADOBE_READER_URL="https://market.android.com/search?q=adobe+reader&so=1&c=apps";
    public static final String ADOBE_READER_PACKAGE="com.adobe.reader";
    public static final String DOCUMENTS_TO_GO_PACKAGE = "com.dataviz.docstogo";
    public static final String GOOGLE_DOCUMENT_PACKAGE ="com.google.android.apps.docs";
    public static final String OPEN_OFFICE_PACKAGE = "at.tomtasche.reader";
    public static final String BEAMREADER_PACKAGE = "com.slgmobile.beamreader";
    public static final String PDFVIEWER_PACKAGE = "mobi.mgeek.pdfviewer";
    public static final String ANDROID_PDF_VIEWER_PACKAGE = "net.sf.andpdf.pdfviewer";
    public static final String EZ_READER = "udk.android.reader";
    public static final String PDF_VIEWER = "com.dzepina.pdfviewer";
    private void openFileForReading(File file, String extension) {
                    Log.v(TAG, " openFileForReading(File file, String extension)");
                    Intent intent = new Intent();
                    intent.setAction(android.content.Intent.ACTION_VIEW);
                    if (extension.equalsIgnoreCase("pdf")) {
                        Log.v(TAG, " file extension is .pdf");
                        if (appInstalledOrNot(Common.ADOBE_READER_PACKAGE)
                                || appInstalledOrNot(Common.BEAMREADER_PACKAGE)
                                || appInstalledOrNot(Common.PDF_VIEWER)
                                || appInstalledOrNot(Common.PDFVIEWER_PACKAGE)
                                || appInstalledOrNot(Common.EZ_READER)) {
                            intent.setDataAndType(Uri.fromFile(file), "application/*");
                            startActivity(intent);
                        } else {
                            showAlertDialog(Common.ADOBE_READER_URL, file);
                        }
                    } else if (extension.equalsIgnoreCase("doc")) {
                        Log.v(TAG, " file extension is .doc");
                        if (appInstalledOrNot(Common.QUICK_OFFICE_PACKAGE)
                                || appInstalledOrNot(Common.DOCUMENTS_TO_GO_PACKAGE)
                                || appInstalledOrNot(Common.GOOGLE_DOCUMENT_PACKAGE)
                                || appInstalledOrNot(Common.OPEN_OFFICE_PACKAGE)) {
                            intent.setDataAndType(Uri.fromFile(file), "application/*");
                            startActivity(intent);
                        } else {
                            showAlertDialog(Common.QUICK_OFFICE_URL, file);
                        }
                    } else if (extension.equalsIgnoreCase("docx")) {
                        Log.v(TAG, " file extension is .docx");
                        if (appInstalledOrNot(Common.QUICK_OFFICE_PACKAGE)
                                || appInstalledOrNot(Common.DOCUMENTS_TO_GO_PACKAGE)
                                || appInstalledOrNot(Common.GOOGLE_DOCUMENT_PACKAGE)
                                || appInstalledOrNot(Common.OPEN_OFFICE_PACKAGE)) {
                            intent.setDataAndType(Uri.fromFile(file), "application/*");
                            startActivity(intent);
                        } else {
                            showAlertDialog(Common.QUICK_OFFICE_URL, file);
                        }
                    } else {
                        intent.setDataAndType(Uri.fromFile(file), "application/*");
                        startActivity(intent);
                    }
                }
        private void showAlertDialog(final String uri, final File file) {
                AlertDialog.Builder dialog = new AlertDialog.Builder(
                        DocumentsActivity.this);
                dialog.setTitle("No Application Found !!!");
                dialog.setMessage("Install App From Market");
                dialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                        Intent intent = new Intent(Intent.ACTION_VIEW);
                        intent.setData(Uri.parse(uri));
                        startActivity(intent);
                    }
                });
                dialog.setNegativeButton("No", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int whichButton) {
                        Intent intent = new Intent();
                        intent.setAction(android.content.Intent.ACTION_VIEW);
                        intent.setDataAndType(Uri.fromFile(file), "application/*");
                        startActivity(intent);
                        dialog.cancel();
                    }
                });
                dialog.show();
            }
    private boolean appInstalledOrNot(String packageName) {
            PackageManager pm = getPackageManager();
            boolean app_installed = false;
            try {
                pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
                app_installed = true;
            } catch (PackageManager.NameNotFoundException e) {
                app_installed = false;
            }
            return app_installed;
        }
于 2012-04-24T06:54:17.640 回答