检查ResolveInfo后的ActivityNotFoundException

时间:2016-08-29 15:11:13

标签: android

我的应用中有一个pdf网址,我想打开它。我正在检查是否有可以打开它的应用程序。如果有,那我就开始这项活动。否则我会回到应用内浏览器+谷歌文档。

我看到一些ActivityNotFoundException在尝试启动pdf活动的行中的日志中崩溃了。有什么事对我说谎吗?我的支票不正确吗?

public void openPdf(Context context, String pdfUrl){
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse(pdfUrl), "application/pdf");
    final ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent, 0);
    // Fallback if it didn't resolve.
    if(resolveInfo == null || resolveInfo.activityInfo == null || !resolveInfo.activityInfo.exported){
        intent = InternalBrowserActivity.getInternalBrowserActivityIntent(context, createGoogleDocsPdfUrl(pdfUrl), false);
    }
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
}
  • 在你问之前,是的,InternalBrowserActivity在Manifest中声明。

0 个答案:

没有答案