一、通过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+cityUri 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>

效果预览:

Android调用外部地图程序


二、通过谷歌地图的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);

效果预览:

Android调用外部地图程序

更多相关文章

  1. 关于android.os.Process.killProcess的使用问题
  2. android中完全退出当前程序的几种方法
  3. Android(java)学习笔记75:匿名内部类的方式实现多线程程序
  4. 深入学习百度地图Android(安卓)SDK v4.0.0【第九关】检索功能
  5. Android开发从入门到精通(7)_1
  6. 给Android程序员的六个建议
  7. 我的第一个 Mono for Android(安卓)应用
  8. Android(安卓)sharedpreferences轻量级存储
  9. android应用程序内存分析

随机推荐

  1. 【原创】Android(安卓)系统稳定性 - ANR(
  2. Android日记之2011\12\28
  3. 关于webview最详细讲解(包含 h5 和android
  4. android下使用htop和lsof
  5. Android中SQLite 使用方法详解
  6. android可自动定位到底部的textview
  7. Android(安卓)studio 上传maven以及使用
  8. Android(安卓)的消息机制(1)
  9. “大数据讲师”、“Hadoop讲师”、“Spar
  10. Android小项目之四 自动更新检查的逻辑