移动开发----启动到三方软件,百度 高德(路线)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
    }

猜你喜欢

转载自blog.csdn.net/zhanwei0102/article/details/53766042
今日推荐