在网址中找不到活动来处理带有http的Intent

时间:2018-08-29 20:32:11

标签: java android android-intent

我已经搜索并搜索了数小时,并且找不到适合我的问题的解决方案。我只是想从我的android应用程序内部打开一个网页。应该很简单,但是我不断收到“找不到活动”错误,应用崩溃。为此,我的代码非常简单...

AboutActivity

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_about);
  Button appsButton = findViewById(R.id.about_button);
  appsButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse(Keys.MARKET_LINK));
      intent.setPackage(getPackageName());
      startActivity(intent);
    }
  });
}

在我的钥匙班上...

public static final String MARKET_LINK = "https://play.google.com/store/apps/dev?id=<MY ID>";

每次我在应用程序中单击“ aboutButton”时,我都会收到错误消息...

  

android.content.ActivityNotFoundException:未找到要处理的活动   意图{act = android.intent.action.VIEW   dat = https://play.google.com/ ...

我在网上找到的所有内容都完全相同...您的网址不包含“ http://”部分,因此失败了,但是您可以看到我的网址中确实包含“ https://”网址的一部分。这是一个完整的URL,我可以在浏览器窗口中键入它,并且页面可以完美打开。我不了解它如何不能具有处理Intent.ACTION_VIEW的活动。我不知道现在要去哪里,因为所有在线内容都在网址中添加了“ http://”,它可以工作,但是没有。另外,我确实有

<uses-permission android:name="android.permission.INTERNET />

在我的清单文件中。任何帮助将不胜感激,这让我发疯。谢谢

1 个答案:

答案 0 :(得分:2)

您要针对特定​​的商品

intent.setPackage(getPackageName());

因此,系统正在您的应用程序中查找意图过滤器以处理意图。如果删除此选项,它将在设备上的其他应用程序中查找并找到允许您打开它们的浏览器。