未找到处理 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