您的位置:首页 > 移动开发

安卓随手笔记四:(判断第三方app是否安装并启动)

2014-06-13 19:30 204 查看
话说今晚西班牙队与荷兰队,很是期待啊!

为什么会判断第三方app是否安装呢?比如,我们在某个应用中获取到用户当前位置的经度纬度,然后呢,想要在百度地图中把这个位置给显示出来,那么我们就要先判断是否安装百度地图,然后才是启动第三方app

目前生活中,比较常用的是百度地图和高德地图

判断是否安装了某个app,我们是通过包名检测系统中是否安装了某个应用程序

/**

* 判断手机是否安装百度或者高德地图 只要安装一个即可

*/

private boolean ifInstallMap() {

return isPackageInstalled(this, "com.autonavi.minimap")

|| isPackageInstalled(this, "com.baidu.BaiduMap");

}

private boolean isPackageInstalled(Context c, String pn) {

PackageManager packageManager = c.getPackageManager();

try {

PackageInfo pi = packageManager.getPackageInfo(pn,PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);

if (null != pi) {

return true;

}

} catch (NameNotFoundException e) {

e.printStackTrace();

return false;

}

return false;

}

上面的com.autonavi.minimap是高德地图的包名,com.baidu.BaiduMap是百度地图的包名。

然后是启动第三方app

Intent intent = new Intent(Intent.ACTION_VIEW);

if (TextUtils.isEmpty(经度)|| TextUtils.isEmpty(维度)) {// 如果获取到的为空

Toast.makeText(this, "获取位置失败", Toast.LENGTH_SHORT).show();

} else {

String locationSplitString = "geo:" + 经度+ "," + 维度;

if (ifInstallMap()) {// 高德地图或者百度地图至少安装之一

Uri uri = Uri.parse(locationSplitString);

intent.setData(uri);

startActivity(intent);

} else {

Toast.makeText(this, "请先安装地图", Toast.LENGTH_SHORT).show();

}

}

这样就在百度地图或者高德地图中显示出了传入的经度和维度所在的位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: