版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanwei0102/article/details/53766042
//点击跳转到百度 或者 高德 地图
public void ding(View v) {
new AlertDialog.Builder(this)
.setCancelable(true)
.setItems(new String[]{"百度地图", "高德地图"}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
if (isAvilible(MapAddressActivity.this, "com.baidu.BaiduMap")) {//传入指定应用包名
try {
Intent intent = Intent.getIntent("intent://map/marker?location="+doubles[0]+","+doubles[1]+"&title="+name+"&content="+name+"&src=e群|#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
startActivity(intent); //启动调用
} catch (URISyntaxException e) {
Log.e("intent", e.getMessage());
}
} else {//未安装
//market为路径,id为包名
//显示手机上所有的market商店
Toast.makeText(MapAddressActivity.this, "您尚未安装百度地图", Toast.LENGTH_LONG).show();
Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
} else {
if (isAvilible(MapAddressActivity.this, "com.autonavi.minimap")) {
try{
Intent intent = Intent.getIntent("androidamap://viewMap?sourceApplication=e群&poiname="+name+"&lat="+longitude1 +"&lon="+latitude1+"&dev=0");
startActivity(intent);
} catch (Exception e)
{e.printStackTrace(); }
}else{
Toast.makeText(MapAddressActivity.this, "您尚未安装高德地图", Toast.LENGTH_LONG).show();
Uri uri = Uri.parse("market://details?id=com.autonavi.minimap");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
}
}).show();
}
// * 检查手机上是否安装了指定的软件
// * @param context
// * @param packageName:应用包名
// * @return
// */
public static boolean isAvilible(Context context, String packageName) {
//获取packagemanager
final PackageManager packageManager = context.getPackageManager();
//获取所有已安装程序的包信息
List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
//用于存储所有已安装程序的包名
List<String> packageNames = new ArrayList<String>();
//从pinfo中将包名字逐一取出,压入pName list中
if (packageInfos != null) {
for (int i = 0; i < packageInfos.size(); i++) {
String packName = packageInfos.get(i).packageName;
packageNames.add(packName);
}
}
//判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
return packageNames.contains(packageName);
}