Android:选择要打开链接的应用程序

Android:选择要打开链接的应用程序,android,android-intent,android-implicit-intent,Android,Android Intent,Android Implicit Intent,在Android应用程序中,选择应用程序打开链接或执行其他操作通常由用户选择,即框架允许用户选择应用程序执行某些操作 例如,假设您有一条tweet的链接,您可以在以下选项中进行选择: 推特 铬 网络浏览器 允许用户选择用于打开链接的应用程序而不是本地应用程序的原因是什么?基本上,您可以获得一个应用程序列表,该列表处理您从应用程序发送的意图 例如,如果您创建此意图 Uri number = Uri.parse("tel:5551234"); Intent callIntent = new In

在Android应用程序中,选择应用程序打开链接或执行其他操作通常由用户选择,即框架允许用户选择应用程序执行某些操作

例如,假设您有一条tweet的链接,您可以在以下选项中进行选择:

  • 推特
  • 网络浏览器

允许用户选择用于打开链接的应用程序而不是本地应用程序的原因是什么?

基本上,您可以获得一个应用程序列表,该列表处理您从应用程序发送的
意图

例如,如果您创建此意图

Uri number = Uri.parse("tel:5551234");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
任何可以处理
意图.操作拨号的应用程序都将出现在选择器列表中。在您的例子中,当您处理链接时,Twitter、Chrome和WebBroswer都是可以处理这些意图的应用程序,因此它们会出现在选择器列表中


您可以阅读更多相关信息。

基本上,您可以获得一个应用程序列表,该列表处理您从应用程序发送的
意图

例如,如果您创建此意图

Uri number = Uri.parse("tel:5551234");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
任何可以处理
意图.操作拨号的应用程序都将出现在选择器列表中。在您的例子中,当您处理链接时,Twitter、Chrome和WebBroswer都是可以处理这些意图的应用程序,因此它们会出现在选择器列表中

您可以根据以下内容阅读更多信息。

隐式意图指定可以调用服务器上任何应用程序的操作 能够执行该操作的设备。使用隐式意图是有用的 当您的应用程序无法执行此操作,但其他应用程序可能可以执行此操作时 您希望用户选择要使用的应用程序

以及:

意图的真正力量在于内隐意图的概念。一 隐式意图只是描述要执行的动作类型(以及, (可选)要执行操作的数据)和 允许系统在设备上查找可以执行以下操作的组件 启动该操作并启动它。如果有多个组件可以 执行意图描述的操作,然后用户选择 使用哪一个

其想法是,在Android中,开发者可以让他的应用程序使用设备上的另一个应用程序来执行某些任务,而不必在自己的应用程序中重新创建相同的功能。通常,有多个应用程序可以执行相同的任务,因此Android允许用户选择要用于该任务的应用程序

基本上,该框架试图提供完成任务的最通用方法:如果官方的
Twitter
应用程序不存在,那么你总是有
Chrome

代码中的操作方式如下所示。

根据:

隐式意图指定可以调用服务器上任何应用程序的操作 能够执行该操作的设备。使用隐式意图是有用的 当您的应用程序无法执行此操作,但其他应用程序可能可以执行此操作时 您希望用户选择要使用的应用程序

以及:

意图的真正力量在于内隐意图的概念。一 隐式意图只是描述要执行的动作类型(以及, (可选)要执行操作的数据)和 允许系统在设备上查找可以执行以下操作的组件 启动该操作并启动它。如果有多个组件可以 执行意图描述的操作,然后用户选择 使用哪一个

其想法是,在Android中,开发者可以让他的应用程序使用设备上的另一个应用程序来执行某些任务,而不必在自己的应用程序中重新创建相同的功能。通常,有多个应用程序可以执行相同的任务,因此Android允许用户选择要用于该任务的应用程序

基本上,该框架试图提供完成任务的最通用方法:如果官方的
Twitter
应用程序不存在,那么你总是有
Chrome


这在代码中的实现方式如图所示。

谷歌引入了隐式意图,但这些意图是模棱两可的,谷歌决定让人类解决模棱两可的问题

在某些情况下,机器人无法做出正确的选择。例如,robot如何决定必须从列表中打开链接的应用程序:Opera、Chrome、Web浏览器


看起来像twitter和google translate这样的应用程序更适合于特定的链接,但实际上应用程序是有问题的(应用程序会自动更新,这样可能会出现bug,而服务器会更新,这意味着应用程序会更新,这样即使在自动更新关闭的设备上,bug也会悄悄出现),有时,用户可能希望通过浏览器而不是专用应用程序打开链接。

谷歌引入了隐含意图,但这些意图是模糊的,谷歌决定让人类解决这种模糊性

在某些情况下,机器人无法做出正确的选择。例如,robot如何决定必须从列表中打开链接的应用程序:Opera、Chrome、Web浏览器


看起来像twitter和google translate这样的应用程序更适合于特定的链接,但实际上应用程序是有问题的(应用程序会自动更新,这样可能会出现bug,而服务器会更新,这意味着应用程序会更新,这样即使在自动更新关闭的设备上,bug也会悄悄出现),有时用户可能希望通过浏览器而不是专用应用程序打开链接。

这实际上是一个编程问题吗?作者正在询问Android框架如何处理不同的意图。也许有点宽泛,但我会说是的@这实际上是一个编程问题吗?作者问的是Android框架如何处理不同的意图。也许有点宽泛,但我会说是的@斯昆克