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