在我的onCreate()方法中,我进行了如下检查:
在我的HTC Desire手机上,即使我已经安装了Adobe的PDF阅读器,这段代码也无法返回匹配结果。一个关于如何在Android应用程序中使用内置PDF阅读器打开PDF文档的问题回答提到,Adobe可能没有任何公共意图(Intent),因此上述检查显然会返回空值。
有人能否验证是否可以通过意图启动Acrobat,或者是否有其他方法或PDF阅读器可供使用。
实际使用情况是下载发票副本并使用以下代码将其存储在本地存储中:
//
// check if we have a PDF viewer, else bad things happen
//
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("application/pdf");
List<ResolveInfo> intents = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (intents == null || intents.size() == 0) {
// display message then...
finish();
}
在我的HTC Desire手机上,即使我已经安装了Adobe的PDF阅读器,这段代码也无法返回匹配结果。一个关于如何在Android应用程序中使用内置PDF阅读器打开PDF文档的问题回答提到,Adobe可能没有任何公共意图(Intent),因此上述检查显然会返回空值。
有人能否验证是否可以通过意图启动Acrobat,或者是否有其他方法或PDF阅读器可供使用。
实际使用情况是下载发票副本并使用以下代码将其存储在本地存储中:
URL url = new URL(data);
InputStream myInput = url.openConnection().getInputStream();
FileOutputStream fos = openFileOutput(fname, Context.MODE_WORLD_READABLE);
// transfer bytes from the input file to the output file
byte[] buffer = new byte[8192];
int length;
while ((length = myInput.read(buffer)) > 0) {
fos.write(buffer, 0, length);
progressDialog.setProgress(i++);
}
fos.close();
然后展示
// read from disk, and call intent
openFileInput(fname); // will throw FileNotFoundException
File dir = getFilesDir(); // where files are stored
File file = new File(dir, fname); // new file with our name
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file));
intent.setType("application/pdf");
startActivity(intent);