gpt4 book ai didi

android - 在浏览器中打开 URL,即使我的应用程序为它注册了一个 intent-filter

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:37 25 4
gpt4 key购买 nike

我的应用为某些 URL 注册了一个 Intent 过滤器,因为它可以处理来自这些 URL 的数据。

但是,在应用程序内部,我想提供一个按钮来在浏览器中打开这样的 URL。也就是说,如果设置了默认浏览器,则在默认浏览器中打开它,否则提供一个选择器 - 就像正常情况一样。

现在,当我的应用程序被设置为这些 URL 的默认值并按下按钮时,我自然会一次又一次地在我的应用程序中获得相同的 Activity 。

有什么想法吗?

最佳答案

我最后做的是:

Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://website.com/entries/" + entry_id));

// Check what is the default app to handle these entry URLs

ResolveInfo defaultResolution = getPackageManager().resolveActivity(i,
PackageManager.MATCH_DEFAULT_ONLY);

// If this app is the default app for entry URLs, use the browser instead

if (defaultResolution.activityInfo.packageName.equals(getPackageName())) {

Intent browseIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://"));

ResolveInfo browseResolution = getPackageManager().resolveActivity(browseIntent,
PackageManager.MATCH_DEFAULT_ONLY);

i.setComponent(new ComponentName(
browseResolution.activityInfo.applicationInfo.packageName,
browseResolution.activityInfo.name));

}

startActivity(i);

关于android - 在浏览器中打开 URL,即使我的应用程序为它注册了一个 intent-filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com