如果有需求场景需要判断手机或者Android设备是否安装了微信或者支付宝,不想集成SDK,可以通过代码来进行判断,判断是否安装其他app也可以使用这种方式,这种方式是通过获取手机安装的程序判断包名是否包含某个程序
判断微信支付宝代码如下:
public class IsInstallApp {
public static boolean checkApkExist(Context context, String packageName) {
if (packageName == null || "".equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
/**
* 检测是否安装支付宝
* @return * @param context
*/
public static boolean checkAliPayInstalled(Context context){
Uri uri = Uri.parse("alipays://platformapi/startApp");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
ComponentName componentName = intent.resolveActivity(context.getPackageManager());
return componentName!=null;
}
/**
* 判断 用户是否安装微信客户端
*/
public static boolean isWeixinAvilible(Context context){
final PackageManager packageManager = context.getPackageManager(); //获取packagemanager
List<PackageInfo> pinfo =packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
if (pinfo !=null){
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
if (pn.equals("com.tencent.mm")){
return true;
}
}
}
return false;
}
/**
* 判断 用户是否安装QQ客户端
*/
public static boolean isQQClientAvaolable(Context context){
final PackageManager packageManager = context.getPackageManager();
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
if (pinfo !=null){
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
if (pn.equalsIgnoreCase("com.tencent.qqlite")||pn.equalsIgnoreCase("com.tencent.mobileqq")){
return true;
}
}
}
return false;
}
}
微信包名:com.tencent.mm
支付宝包名:com.eg.android.AlipayGphone