【问题标题】:How to prompt the user to choose default navigation application如何提示用户选择默认导航应用
【发布时间】:2016-04-27 19:31:29
【问题描述】:

我有一个应用程序可以让用户点击地址从他当前的位置开始导航。现在它打开Waze。但现在我想让用户在安装的地图、位智和其他导航应用程序之间进行选择,并设置一个默认值。

我尝试使用:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format(Locale.US, "geo:%.8f,%.8f", latitude, longitude)));
startActivity(Intent.createChooser(intent, "Select an application"));

它让我选择但它不会开始导航,只是地图上的一个经典点。我想要的是打开任何应用程序的导航。 地图是:

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

但它并没有让用户使用哪个应用程序。

那么有没有办法自动做到这一点?如果不是,还有什么可以让用户选择?

【问题讨论】:

    标签: android google-maps android-intent


    【解决方案1】:

    intent.setPackage("com.google.android.apps.maps"); 你是在强制使用谷歌地图。来自the documentation

    public Intent setPackage (String packageName)

    (通常可选)设置一个明确的应用程序包名称,限制此 Intent 将解析到的组件。如果保留默认值 null,则将考虑所有应用程序中的所有组件。如果非空,则 Intent 只能匹配给定应用程序包中的组件。

    删除它:

    Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
    Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
    startActivity(mapIntent);
    

    更新:

    Waze 似乎响应http://maps.google.com Intents,因此您可以通过这种方式实现您想要的功能(不适用于 iCoyote):

    Uri gmmIntentUri = Uri.parse("http://maps.google.com/maps?q=Taronga+Zoo,+Sydney+Australia");
    Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
    startActivity(mapIntent);
    

    【讨论】:

    • 我已经试过不用了,也一样,直接打开google map
    • 您安装了哪些导航应用程序?尝试删除 Google 地图的“默认启动”选项。转到设置->应用程序->地图->清除默认值
    • 我有,地图,Waze,iCoyote,3 个在法国使用的主要应用程序。清除默认值不会改变任何内容。也许其他应用程序没有抓住这个意图“google.navigation”? (这在 2016 年很愚蠢)
    • 我试过 Nokia Here 和 OsmAnd 都运行良好,但我可以确认 Waze 和 iCoyote 都没有回应 google.navigation Intent
    • 我刚刚尝试使用“maps.google.com/maps?daddr=”,它似乎可以工作,但并不完美,因为根据应用程序它不会直接启动导航...有没有办法将多个 URI 组合到 cacth尽可能多的应用?
    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多