我如何使用隐式意图但避免 "select an app to handle this intent" 屏幕?
How can i use implicit intent but avoid "select an app to handle this intent" screen?
在我的代码中,我想触发一个隐含的意图来打开另一个 android 库 activity。
Intent i = new Intent("Shared library", Uri.parse("https://www.google.com/"));
startActivity(i);
假设很少有应用程序包含相同的库。如果我触发隐式意图,用户会看到 "select an app to handle this intent"?
或者因为所有应用程序都包含相同的库,它只会打开?
If I trigger an implicit intent will the user see the "select an app to handle this intent"?
如果图书馆:
- ...是 AAR
- ...有一个
AndroidManifest.xml
文件,其中...
- ...有一个
<activity>
和一个 <intent-filter>
匹配你的隐式 Intent
然后,任何包含该库且未通过其自己的清单阻止 <activity>
的应用程序都将成为响应该隐式 Intent
的候选者。如果这些应用程序中有 2 个以上,则会发生正常 Android 隐式 Intent
解析:
- 如果用户在之前的
startActivity()
调用中为此 Intent
结构设置了默认值,则默认值 activity 将是启动的那个
- 否则,用户将看到一个选择器
Or because all the apps contain the same library it will just open?
否,因为Android不知道用户想要哪个应用程序。
How can i use implicit intent but avoid “select an app to handle this intent” screen?
如果用户没有设置默认 activity,则不能。由用户决定哪个应用程序的 activity 应该处理隐式 Intent
.
换句话说:恶意软件作者 喜欢 单方面劫持隐式 Intents
并强制它们全部路由到恶意软件的能力。
在我的代码中,我想触发一个隐含的意图来打开另一个 android 库 activity。
Intent i = new Intent("Shared library", Uri.parse("https://www.google.com/"));
startActivity(i);
假设很少有应用程序包含相同的库。如果我触发隐式意图,用户会看到 "select an app to handle this intent"?
或者因为所有应用程序都包含相同的库,它只会打开?
If I trigger an implicit intent will the user see the "select an app to handle this intent"?
如果图书馆:
- ...是 AAR
- ...有一个
AndroidManifest.xml
文件,其中... - ...有一个
<activity>
和一个<intent-filter>
匹配你的隐式Intent
然后,任何包含该库且未通过其自己的清单阻止 <activity>
的应用程序都将成为响应该隐式 Intent
的候选者。如果这些应用程序中有 2 个以上,则会发生正常 Android 隐式 Intent
解析:
- 如果用户在之前的
startActivity()
调用中为此Intent
结构设置了默认值,则默认值 activity 将是启动的那个 - 否则,用户将看到一个选择器
Or because all the apps contain the same library it will just open?
否,因为Android不知道用户想要哪个应用程序。
How can i use implicit intent but avoid “select an app to handle this intent” screen?
如果用户没有设置默认 activity,则不能。由用户决定哪个应用程序的 activity 应该处理隐式 Intent
.
换句话说:恶意软件作者 喜欢 单方面劫持隐式 Intents
并强制它们全部路由到恶意软件的能力。