安装检查
支付宝
微信
高德地图
百度地图
腾讯地图
Android 11
manifest标签下必须配置,如果有其他客户端,自行扩展如下
<queries>
<package android:name="com.tencent.mm" />
<package android:name="com.eg.android.AlipayGphone" />
<package android:name="com.baidu.BaiduMap" />
<package android:name="com.autonavi.minimap" />
<package android:name="com.tencent.map" />
</queries>
工具源码
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import java.util.List;
/**
* 客户端检查器
*/
public class Client {
/**
* 微信包名
*/
public static final String WECHAT = "com.tencent.mm";
/**
* 微信下载
*/
public static final String WECHAT_URL = "https://weixin.qq.com/";
/**
* 支付宝包名
*/
public static final String ALIPAY = "com.eg.android.AlipayGphone";
/**
* 支付宝下载
*/
public static final String ALIPAY_URL = "https://d.alipay.com";
/**
* 百度地图包名
*/
public static final String BAIDU_MAP = "com.baidu.BaiduMap";
/**
* 百度地图下载
*/
public static final String BAIDU_MAP_URL = "http://map.baidu.com/zt/qudao/newfengchao/1012337a/html/pc.html";
/**
* 高德地图包名
*/
public static final String AUTO_NAVI_MAP = "com.autonavi.minimap";
/**
* 高德地图下载
*/
public static final String AUTO_NAVI_MAP_URL = "https://wap.amap.com/?type=pcm&from=banner&src=pc";
/**
* 腾讯地图包名
*/
public static final String TENCENT_MAP = "com.tencent.map";
/**
* 腾讯地图下载
*/
public static final String TENCENT_MAP_URL = "https://map.qq.com/mobile/";
/**
* 浏览
*
* @param context 上下文
* @param url 跳转
*/
public static void browse(Context context, String url) {
startBrowser(context, url);
}
/**
* @param context 上下文
* @return 是否安装
*/
public static boolean isInstall(Context context, String packageName) {
return isInstallPackage(context.getApplicationContext(), packageName);
}
/**
* 跳转浏览器
*
* @param context 上下文
* @param url 跳转
*/
public static void startBrowser(Context context, String url) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
context.startActivity(intent);
}
/**
* @param context 上下文
* @param packageName 包名称
* @return 是否安装对应的安装包
*/
public static boolean isInstallPackage(Context context, String packageName) {
PackageManager packageManager = context.getPackageManager();
List<PackageInfo> pio = packageManager.getInstalledPackages(0);
if (pio != null) {
for (int i = 0; i < pio.size(); i++) {
String pck = pio.get(i).packageName;
if (pck.equals(packageName)) {
return true;
}
}
}
return false;
}
}