And*_*eKR 4 android intentfilter android-intent
我的应用程序为某些URL注册了一个intent过滤器,因为它可以处理来自这些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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
988 次 |
| 最近记录: |