0

私はこのタイプの質問がSOで何度も答えられていることを知っています。しかし、私は自分の要件に合う答えを見つけることができません。

Android用AdobeReaderがクライアントにインストールされているかどうかを知る必要があります。アプリケーションからリーダーのインストールをトリガーしない場合は、PDFを表示します...

私はAndroidの初心者のようなものです...コードの流れはありがたいです。

ありがとう..

4

2 に答える 2

0

リーダーがインストールされていない場合にマーケットにリンクしたい場合は、アクティビティでこのインテントを起動できます。

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

こんにちはクナル私はあなたのためにいくつかのコードを書きました。テストしていないので、クロス検証してください

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 に答える