未找到处理 Intent 的活动 act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com

Posted

技术标签:

【中文标题】未找到处理 Intent 的活动 act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com.google.android.apps.maps【英文标题】:No Activity found to handle Intent act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com.google.android.apps.maps 未找到处理 Intent 的活动 act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com.google.android.apps.maps 【发布时间】:2018-09-28 15:02:52 【问题描述】:

我正在尝试使用以下代码启动地图。

public static void navigate(Context context, double lat, double lon) 
        String locationQuery = lat + "," + lon;
        Uri gmmIntentUri = Uri.parse("google.navigation:q=" + locationQuery);
        Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
        mapIntent.setPackage("com.google.android.apps.maps");
        context.startActivity(mapIntent);
    

但在某些情况下,我没有找到处理意图崩溃的活动。我在这里做错了什么。

【问题讨论】:

你说在某些情况下,你是指不同的设备还是不同的纬度/经度值? 它是随机的。无法确定它是否适用于某些纬度或设备。它适用于不同的设备 您是在强制使用 com.google.android.apps.maps 包,所以可能是因为用户没有安装此应用,或者您生成的链接已损坏,无法谷歌地图(或设备上的任何其他应用程序)理解 那么如果没有安装地图我们如何处理意图 不能通过用户浏览器打开地图吗? 【参考方案1】:

我认为你应该检查这个包是否像this 一样安装

private boolean isPackageInstalled(String packagename, PackageManager packageManager) 
    try 
        packageManager.getPackageInfo(packagename, 0);
        return true;
     catch (NameNotFoundException e) 
        return false;
    

如果不是,则打开网络版本。或者查看谷歌地图文档。 AFAIK 有一种方法可以处理它。

或者您可以通过这种方式检查应用是否可用:

if (mapIntent.resolveActivity(getPackageManager()) != null) 
    ...

如果未安装应用程序,您可以:

1.将用户重定向到 Google Play

2.在浏览器中打开地图。

String uri = "http://maps.google.com/maps?saddr=" + sourceLatitude + "," + sourceLongitude + "&daddr=" + destinationLatitude + "," + destinationLongitude;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);

【讨论】:

以上是关于未找到处理 Intent 的活动 act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com的主要内容,如果未能解决你的问题,请参考以下文章

android.content.ActivityNotFoundException:未找到处理 Intent act=android.settings.USAGE_ACCESS_SETTINGS

未找到处理 Intent 的活动 - android.intent.action.OPEN_DOCUMENT

未找到处理 Intent act=android.media.action.IMAGE_CAPTURE 的 Activity

未找到处理 Intent act=com.android.camera.action.CROP 的 Activity

未找到使用有效 url 处理 Intent 错误的活动

ActivityNotFoundException:未找到处理 Intent 可疑行为的活动