赞
踩
一、通过geo-uri方式调用外部程序,可以启动google map,百度地图等:
//geo:latitude,longitude
//geo:latitude,longitude?z=zoom,z表示zoom级别,值为数字1到23
//geo:0,0?q=my+street+address
//geo:0,0?q=business+near+city
Uri mUri = Uri.parse("geo:39.940409,116.355257?q=西直门");
Intent mIntent = new Intent(Intent.ACTION_VIEW,mUri);
startActivity(mIntent);
这段代码将会弹出一个对话框,显示所有在initer-filter中注册了geo-uri类型的程序,让用户进行选择,如果我们的程序也需要支持处理geo-uri,可以通过在AndroidMainfest文件中添加如下代码来实现:
<intent-filter android:priority="0" >
<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>
效果预览:
二、通过谷歌地图的MapsActivity:Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://ditu.google.cn/maps?hl=zh&mrt=loc&q=39.940409,116.355257(西直门)")); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); i.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); startActivity(i);
上面的代码将会直接启动谷歌地图并显示对应的点,注意,如果设备中没有安装谷歌地图,将会出现ActivityNotFoundException,也可以直接通过下面的代码来让用户选择通过谷歌地图(如果设备中安装了的话),或者通过浏览器来在线显示地图:
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://ditu.google.cn/maps?hl=zh&mrt=loc&q=39.940409,116.355257(西直门)")); startActivity(i);
效果预览:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。