android获取apk的详情
//定义安装包的管理者
private PackageManager mPackageManager = null;
List<PackageInfo> packageInfos = mPackageManager.getInstalledPackages(0); //定义容器
if (packageInfos == null) {
Log.e(Constants.LOG_TAG, "getConigAppList PackageInfo == null");
return ;
}
//进行循环便利packageinfos中的安装包信息
for (int i = 0; i < packageInfos.size(); ++i){
PackageInfo packageInfo = packageInfos.get(i);
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
if (applicationInfo != null) {
String packageName = applicationInfo.packageName; //获取apk的包名
String label = applicationInfo.loadLabel(mPackageManager).toString();//获取apk的名称
int appVersionCode = packageInfo.versionCode; //获取apk的版本号
CharSequence categoryNameSeq = applicationInfo.getCategoryTitle(mContext, applicationInfo.category);
String categoryName = "";
if (categoryNameSeq != null) {
categoryName = categoryNameSeq.toString();
}
}
1.获取apk的的图标
private PackageManager mPackageManager = null;
List<PackageInfo> packageInfos = mPackageManager.getInstalledPackages(0); //定义容器
if (packageInfos == null) {
Log.e(Constants.LOG_TAG, "getConigAppList PackageInfo == null");
return ;
}
//进行循环便利packageinfos中的安装包信息
for (int i = 0; i < packageInfos.size(); ++i){
PackageInfo packageInfo = packageInfos.get(i);
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
if (applicationInfo != null) {
Drawable drawable= mPackageManager.getApplicationIcon(applicationInfo);//获取到apk图标
BitmapDrawable bd=(BitmapDrawable)drawable;
Bitmap bitmap=bd.getBitmap();
Uri uri=Uri.parse(MediaStore.Images.Media.insertImage(mContext.getContentResolver(),bitmap,null,null));
//解析出本地的地址
Log.i(Constants.LOG_TAG, uri.toString());
}
2.推断apk是否安装
private boolean isApkInstalled(String packagename)
{
PackageManager localPackageManager = getPackageManager();
try
{
PackageInfo localPackageInfo = localPackageManager.getPackageInfo(packagename, PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
}
catch (PackageManager.NameNotFoundException localNameNotFoundException)
{
return false;
}
}
3.打开app
private void openAPK(String packagename)
{
PackageManager packageManager = mContext.getPackageManager();
Intent intent=new Intent();
intent =packageManager.getLaunchIntentForPackage(packagename);
mContext.startActivity(intent);
}
4.安装apk
private void installAPK(String apkPath)
{
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse("file://" + apkPath),
"application/vnd.android.package-archive");
mContext.startActivity(intent);
}