现在主流的地图应用APP有 Google Map,百度地图,高德地图,腾讯地图等系列地图APP,由于现在要实现自己应用中跳地图APP进行定点搜索某位置,网上进行搜索一些资料很少,要么去这些地图官方网站进行集成,在这里分享一个万能自己APP跳转地图APP并进行搜索某个地方,这个也是网上搜到别人的资料看到的
Intent intent=new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("geo:0,0?q=自己要查询的地点"));
mContext.startActivity(intent);
//(猜测参数的意思)geo代表 地图探测 0,0代表经纬度 q 代表query 查询的意思 (这个参数只是猜测)
这个测试过可以跳转的APP有Google地图,高德地图,百度地图,腾讯地图,其他没测试过,如果手机没有装过这些应用需要检查手机是否装过
有两种检查方式:
1
private boolean isInstallMap(String packageName) {
return new File("/data/data/" + packageName).exists();
}
2
public static boolean isAppInstall(Context context,String appName) {
PackageInfo packageInfo = null ;
try {
packageInfo = context.getPackageManager().getPackageInfo(appName, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return packageInfo==null?false:true;
}
如果我们的程序也需要支持处理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>
//基于地址的地图点
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
//基于图的点或纬度/经度.位置= 。
Uri.parse("geo:37.422219,-122.08364?q=搜索地点&z=14"); // z 是一个缩放参数水平 取值范围1~20
Uri.parse("geo:37.422219,-122.08364?z=14");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);
http://blog.youkuaiyun.com/gf771115/article/details/7722456/
http://blog.youkuaiyun.com/aaren_jiang/article/details/8842774