我正试图通过使用隐含的意图从uri打开pdf文件:
try{
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(pdfUri, "application/pdf");
startActivity(intent);
}catch(ActivityNotFoundException e){
e.printStackTrace();
Log.e(LOG_TAG,e.getMessage());
}
这在我的OnePlus X(API级别23)上运行得非常好,但我在三星GT S7582(API级别17)上尝试过它,因为某些原因它无法正常工作。
然后我尝试使用IntentChooser,但这也没有用:
Intent chooser = Intent.createChooser(intent, "Open with");
startActivity(chooser)
之后我尝试共享一个字符串,并且在两个设备上都运行良好:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "Test 123 abc");
intent.setType("text/plain");
startActivity(intent);
能够打开PDF文件的应用程序绝对安装在两个设备上,并且不会抛出ActivityNotFoundException。
有谁知道为什么意图不能在某些设备上运行?