2

我有一个 android 应用程序,它允许用户打开谷歌地图或导航器以显示某个地址。此功能过去有效,但现在我收到以下错误并且应用程序崩溃:

错误/AndroidRuntime(2165): android.content.ActivityNotFoundException: 没有找到处理 Intent 的活动 { act=android.intent.action.VIEW dat=google.navigation:q=MCNAMARA+TERMINAL+ROMULUS+MI+48174 }

我正在使用的两个意图是-

1) 对于地图:

    String uri = "geo:0,0?q=MCNAMARA+TERMINAL+ROMULUS+MI+48174";        
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
    startActivity(i); 

2) 对于导航器:

    String uri = "google.navigation:q=MCNAMARA+TERMINAL+ROMULUS+MI+48174";
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
    startActivity(i); 
4

2 回答 2

7

您的第一个Intent在许多设备上应该没问题,因为这是记录和支持的。

您的第二个 Intent 既没有记录也不支持 AFAIK,因此您不应该使用它。

此外,请记住,并非每台 Android 设备都会配备 Google 地图或导航。使用PackageManagerqueryIntentActivities()确定是否有任何响应您的Intent,然后根据需要禁用 UI 路径以防止用户遇到异常。

于 2010-08-18T23:37:54.067 回答
0

启动 Navigator 的意图:

Intent navigation = new Intent(Intent.ACTION_VIEW, Uri.parse(“http://
maps.google.com/maps?
saddr=42.35892,-71.05781&daddr=40.756054,-73.986951”));
 startActivity(navigation);

更多细节可以在这里找到。

于 2012-10-17T12:37:25.690 回答