我的应用为某些URL注册了一个意图过滤器,因为它可以处理来自这些URL的数据。
但是,在应用程序内部,我想提供一个按钮以在浏览器中打开这样的URL。也就是说,如果设置了默认浏览器,请在默认浏览器中将其打开,否则请像通常一样提供选择器。
现在,当将我的应用程序设置为这些URL的默认设置并按下按钮时,很自然地,我一次又一次地在我的应用程序中得到相同的活动。
有任何想法吗?
我最终要做的是:
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句