78 lines
2.6 KiB
Plaintext
Executable File
78 lines
2.6 KiB
Plaintext
Executable File
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;
|
||
}
|
||
|
||
}
|