【问题标题】:Make Intent.ACTION_VIEW accept multiple URIs使 Intent.ACTION_VIEW 接受多个 URI
【发布时间】:2013-03-29 09:33:05
【问题描述】:

我想启动一些接受地理坐标的应用程序 (http://developer.android.com/training/sharing/send.html)。问题是他们需要不同的 URI。

示例(伪代码):

            Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
            intent.addSomeUri("http://maps.google.com/maps/?daddr="+myAddress);
            intent.addSomeUri("http://someotherservice.com/?coordinates="+myLat+":"+myLng+"&address=myAddress");

编辑: 当然,目标是让两个应用程序出现在同一个活动选择器中。

我该如何实现?

【问题讨论】:

    标签: android


    【解决方案1】:

    我怎样才能实现它?

    每个Uri 呼叫一次startActivity()(或startService() 或其他)一次。

    【讨论】:

    • 但是不会依次打开两个选择器吗?我希望这两个应用都出现在同一个活动选择器中。
    • @MichałK:“但它不会一个接一个地打开两个选择器吗?” - 是的。 “我希望这两个应用程序出现在同一个活动选择器中”——只有通过PackageManagerqueryIntentActivities() 创建自己的“活动选择器”才能实现。
    • 这就是我的答案(尽管我真的希望它像我在问题中提出的那样简单)。谢谢!
    • @MichałK:正如我最近在其他地方评论的那样,这些天我将编写一个扩展的活动选择器来处理这样的场景,因为这种情况经常出现。这不是我需要抓挠的痒。
    • 我想看看。这比我描述的要多。例如。我想为电子邮件或短信提供一些文本的情况。对于短信,我只有内容文本。对于电子邮件,我还想要标题。但是,如果我指定标题,短信应用程序将从选择器中消失,或者将其改为彩信。等等。
    【解决方案2】:

    您真的要启动每个应用程序吗? 如果没有,你有更简单的方法

     Intent intent = new Intent(Intent.ACTION_VIEW);
     intent.setData(Uri.parse("geo:30.0, 120.0"));
     startActivity(intent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多