0
点赞
收藏
分享

微信扫一扫

PackageUtils


package com.example.liuan.mytoolsquickbottom.utils;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.widget.Toast;

import com.example.liuan.mytoolsquickbottom.R;

import static com.example.liuan.mytoolsquickbottom.common.MyApp.appContext;

/**
* Created by liuan on 2017/7/30.
*/


public class PackageUtils {
static PackageManager pm;

public PackageUtils(Context appContext) {
pm = appContext.getPackageManager();
}

public static int getVerCode(Context appContext) {
int verCode = -1;
try {
verCode = appContext.getPackageManager().getPackageInfo(
appContext.getPackageName(), 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
Log.e("msg", e.getMessage());
}
return verCode;
}

public static String getVerName(Context appContext) {
String verName = "";
try {
verName = appContext.getPackageManager().getPackageInfo(
appContext.getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
Log.e("msg", e.getMessage());
}
return verName;
}


/*
* 获取程序 图标
*/
public static Drawable getAppIcon(String packname) {
try {
ApplicationInfo info = pm.getApplicationInfo(packname, 0);
return info.loadIcon(pm);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return appContext.getResources().getDrawable(R.mipmap.weimei);
}


/*
*获取程序的版本号
*/
public String getAppVersion(String packname) {

try {
PackageInfo packinfo = pm.getPackageInfo(packname, 0);
return packinfo.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();

}
return "";
}


/*
* 获取程序的名字
*/
public String getAppName(String packname) {
try {
ApplicationInfo info = pm.getApplicationInfo(packname, 0);
return info.loadLabel(pm).toString();
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}
return "";
}

/*
* 获取程序的权限
*/
public String[] getAppPremission(String packname) {
try {
PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_PERMISSIONS);
//获取到所有的权限
return packinfo.requestedPermissions;

} catch (NameNotFoundException e) {
e.printStackTrace();

}
return null;
}


/*
* 获取程序的签名
*/
public String getAppSignature(String packname) {
try {
PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES);
//获取到所有的权限
return packinfo.signatures[0].toCharsString();

} catch (NameNotFoundException e) {
e.printStackTrace();


}
return "";
}


private void startApp(String packName)
throws Exception {

final String activityName = getActivityName(packName);
if (null == activityName) {
Toast.makeText(appContext, "程序无法启动",
Toast.LENGTH_SHORT);
return;
}
Intent intent = new Intent();
intent.setComponent(new ComponentName(packName,
activityName));
appContext.startActivity(intent);
}






/**
* 获取启动相关程序的Activity
*
* @param packName
* @return
* @throws Exception
*/
public String getActivityName(String packName) throws Exception {
final PackageInfo packInfo = pm.getPackageInfo(packName,
PackageManager.GET_ACTIVITIES);
final ActivityInfo[] activitys = packInfo.activities;
if (null == activitys || activitys.length <= 0) {
return null;
}
return activitys[0].name;
}

}



举报
0 条评论