1

我有一个小型测试项目,其主要活动包含:

String myUri =  "geo:50.08818f,14.42021f?z=11";
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(myUri));
startActivity(intent);

在我的安卓设备上,我有谷歌地图和一个使用地理方案的应用程序。运行测试项目,出现一个带有 2 个选项的弹出窗口:如果我想打开我的应用程序,它会打开并在地图上设置给定位置,但如果我选择 Google 地图,地图会打开,一秒钟后,我的另一个应用程序启动并在其地图上设置位置。

我的问题是,如果我没有选择它,我不明白为什么我的其他应用程序会打开。我的应用程序清单中的一段代码是:

<intent-filter >
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="geo" />
</intent-filter>

任何帮助将不胜感激,

谢谢

4

4 回答 4

2

您可以使用 :

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);

但它也可以启动 Navigator...


您还可以使用:

"google.navigation:q=an+address+city"

谷歌导航


以下是可用列表:http Intent:
//developer.android.com/guide/appendix/g-app-intents.html

于 2012-09-14T10:23:08.667 回答
0

纬度和经度必须是小数。

String myUri =  "geo:50.08818,14.42021?z=11";
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(myUri));
startActivity(intent);
于 2012-09-17T09:05:54.230 回答
0

您可以使用此意图专门使用 Google 地图打开导航:

 Intent navigation = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr=" +
                     String.valueOf(AppObj.getInstance().currentUserLocation.getLatitude())+","+
                     String.valueOf(AppObj.getInstance().currentUserLocation.getLongitude())+"&daddr="+
                     String.valueOf(task.getLatitude()) +","+ String.valueOf(task.getLongtitude())));
                     navigation.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
 startActivity(navigation);
于 2013-05-08T02:33:19.720 回答
0

得到它的工作:

String uri = "geo:" + gpsLat + "," + gpsLong + "?q=" + Uri.encode(gpsLat+ "," + gpsLong);
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)));

希望这有帮助

于 2014-02-01T16:54:14.587 回答