【问题标题】:ActivityNotFound - Launching Google Map using IntentActivityNotFound - 使用 Intent 启动谷歌地图
【发布时间】:2013-12-12 05:38:11
【问题描述】:

我正在编写一个程序,我是用户在 Android 中启动 Google Map,启动 Google Map 我正在使用 Intent 但遇到问题。

错误提示:

 android.app.Activity.startActivityForResult(Activity.java:3395)

Logcat:-

12-13 15:00:15.620: E/AndroidRuntime(5819): FATAL EXCEPTION: main
12-13 15:00:15.620: E/AndroidRuntime(5819): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=?q=pizza+hut48.89364,2.33739&z=16 }
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1580)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1431)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.app.Activity.startActivityForResult(Activity.java:3434)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.app.Activity.startActivityForResult(Activity.java:3395)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.app.Activity.startActivity(Activity.java:3605)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.app.Activity.startActivity(Activity.java:3573)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at com.example.gpstracking.AndroidGPSTrackingActivity$1.onClick(AndroidGPSTrackingActivity.java:41)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.view.View.performClick(View.java:4223)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.view.View$PerformClick.run(View.java:17275)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.os.Handler.handleCallback(Handler.java:615)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.os.Looper.loop(Looper.java:137)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at android.app.ActivityThread.main(ActivityThread.java:4921)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at java.lang.reflect.Method.invokeNative(Native Method)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at java.lang.reflect.Method.invoke(Method.java:511)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
12-13 15:00:15.620: E/AndroidRuntime(5819):     at dalvik.system.NativeStart.main(Native Method)
12-13 15:00:23.730: I/Process(5819): Sending signal. PID: 5819 SIG: 9

代码启动 Google 地图,使用 Intent 显示附近的必胜客

 double latitude = gps.getLatitude();
 double longitude = gps.getLongitude();
 String uriBegin = latitude + "," + longitude;
 String uriString = "?q=pizza+hut" + uriBegin + "&z=16";
 Uri uri = Uri.parse(uriString);
 Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);
 startActivity(intent);

【问题讨论】:

    标签: android google-maps android-intent geolocation gps


    【解决方案1】:

    试试这个网址 相应地更改查询和位置参数 这里 q 指定您的查询 ll 是您的纬度和经度,z 是缩放级别

    https://maps.google.com/?q=pizza+hut&ll=-33.867701,151.208471&z=12
    

    在您的应用中添加这段代码

    Uri uri = Uri.parse("https://maps.google.com/?q=pizza+hut&ll=-33.867701,151.208471&z=12");
         Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);
         intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
         startActivity(intent);
    

    【讨论】:

    • 请确保您添加的网址正确。检查我编辑的代码。它显示了一个使用互联网或地图打开 url 的弹出窗口,并且适用于这两个选项。
    • 谢谢你的朋友 :) 干杯,我在哪里可以获得查询列表,例如:pizza+hut .... 我需要完整列表
    • 你可以在这里尝试不同的词,它是自定义搜索,它会做出相应的反应。
    • 好吧,如果我不想显示对话框,简而言之,如果我想直接通过谷歌地图启动,但不想显示互联网选项
    • 您可以在 startActivity intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");之前尝试以下行
    【解决方案2】:

    使用用户的当前位置显示附近的必胜客餐厅并启动Google Map without dialog

    如果你想摆脱对话框,你可以给意图一个关于你想使用哪个包的提示。在 startActivity() 之前添加:

    intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");

    最后你的代码应该是这样的

    double latitude = gps.getLatitude();
    double longitude = gps.getLongitude();
    String uriBegin = latitude + "," + longitude;
    String uriString = "https://maps.google.com/?q=pizza+hut&ll=" + uriBegin + "&z=12";
    Uri uri = Uri.parse(uriString);
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);
    intent.setClassName("com.google.android.apps.maps",   "com.google.android.maps.MapsActivity");
    startActivity(intent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      相关资源
      最近更新 更多