私はこのタイプの質問がSOで何度も答えられていることを知っています。しかし、私は自分の要件に合う答えを見つけることができません。
Android用AdobeReaderがクライアントにインストールされているかどうかを知る必要があります。アプリケーションからリーダーのインストールをトリガーしない場合は、PDFを表示します...
私はAndroidの初心者のようなものです...コードの流れはありがたいです。
ありがとう..
私はこのタイプの質問がSOで何度も答えられていることを知っています。しかし、私は自分の要件に合う答えを見つけることができません。
Android用AdobeReaderがクライアントにインストールされているかどうかを知る必要があります。アプリケーションからリーダーのインストールをトリガーしない場合は、PDFを表示します...
私はAndroidの初心者のようなものです...コードの流れはありがたいです。
ありがとう..
リーダーがインストールされていない場合にマーケットにリンクしたい場合は、アクティビティでこのインテントを起動できます。
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);
これが役立つことを願っています。
おめでとう、ティム
こんにちはクナル私はあなたのためにいくつかのコードを書きました。テストしていないので、クロス検証してください
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;
}