XiMengJianYu/.svn/pristine/6a/6a7cecec224635c4a9725b9e51548956ba9b5a18.svn-base

78 lines
2.6 KiB
Plaintext
Raw Normal View History

2023-04-17 17:58:44 +08:00
package com.example.administrator.ximengjianyu.utils;
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.ArrayList;
import java.util.List;
/**
* Created by xukai on 2017/2/16.
*/
public class ApkUtils {
private Context mContext;
public ApkUtils(Context context) {
mContext = context;
}
/**
* 该方法用来卸载程序
*/
public void uninstallAPK(String packageName) {
// 通过程序的包名创建URI
Uri packageURI = Uri.parse("package:" + packageName);
// 创建Intent意图
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(packageURI);
// 执行卸载程序
mContext.startActivity(intent);
}
/**
* 该方法用来判断某个手机上是否安卓了指定的软件
*/
public boolean haveInstallApk( String packageName){
//获取packagemanager
final PackageManager packageManager = mContext.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);
}
/**
* 判断相对应的APP是否存在
*
* @param context
* @param packageName(包名)(若想判断QQ则改为com.tencent.mobileqq若想判断微信则改为com.tencent.mm)
* @return
*/
public static boolean isAvilible(Context context, String packageName) {
PackageManager packageManager = context.getPackageManager();
//获取手机系统的所有APP包名然后进行一一比较
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
for (int i = 0; i < pinfo.size(); i++) {
if (((PackageInfo) pinfo.get(i)).packageName
.equalsIgnoreCase(packageName))
return true;
}
return false;
}
}