Android Implicit Intent在某些设备上不起作用

时间:2017-01-07 20:48:56

标签: android exception android-intent android-activity android-api-levels

我正试图通过使用隐含的意图从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。

有谁知道为什么意图不能在某些设备上运行?

0 个答案:

没有答案