【问题标题】:No Activity found to handle Intent { act=android.intent.action.VIEW dat=app:// }未找到处理 Intent { act=android.intent.action.VIEW dat=app:// } 的 Activity
【发布时间】:2018-08-29 10:11:44
【问题描述】:

我收到以下错误消息:

未找到处理 Intent { act=android.intent.action.VIEW 的 Activity dat=app:// }

我尝试了许多不同的方法,但都没有成功。这是我正在使用的代码:

if (url.startsWith("app://")) {
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
     intent.setData(Uri.parse(url));
     startActivity(intent);
     return true;
}

【问题讨论】:

  • 你想做什么?打开一个 http 链接或其他什么?
  • 而不是startActivity(intent) 使用startActivity(Intent.createChooser(intent , "Open With..."));
  • 发布一个完整的代码,你在哪里获取 url 值

标签: android webview


【解决方案1】:

如果您想在 google play store 上查看应用,请尝试以下操作:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageName)));

【讨论】:

    【解决方案2】:

    请务必在 Intent 上安装您打算使用的应用。 例如,不同的市场或应用程序 那是我的解决方案 您也可以使用此方法来确保:

     private Boolean isBazaarInstalled() {
        PackageManager manager = getPackageManager();
        try {
          manager.getPackageInfo("com.farsitel.bazaar", PackageManager.GET_ACTIVITIES);
        } catch (PackageManager.NameNotFoundException e) {
          e.printStackTrace();
          return false;
        }
    
        return true;
      }
    

    并像这样使用它:

    if (isBazaarInstalled()) {
              Intent intent = new Intent(Intent.ACTION_VIEW);
              intent.setData(Uri.parse("bazaar://collection?slug=by_author&aid=" + "602737144978"));
              intent.setPackage("com.farsitel.bazaar");
              startActivity(intent);
            } else {
              Toast.makeText(this, getString(R.string.bazar_not_installed), Toast.LENGTH_SHORT).show();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多