XiMengJianYu/.svn/pristine/6a/6a7cecec224635c4a9725b9e51548956ba9b5a18.svn-base
2023-04-17 17:58:44 +08:00

78 lines
2.6 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}