package信息在android应用开发中经常用到,这个博客用来收藏应用相关信息获取的方式,如是否为系统权限,版本号、包名的获取。以方便以后自己查阅或者使用。
一、判断一个应用是不是系统应用
public static boolean isSystemPackage(Context ctx) {
if (ctx == null) {
return false;
}
try {
PackageManager packageManager = ctx.getPackageManager();
ApplicationInfo info = packageManager.getApplicationInfo(ctx.getPackageName(), 0);
return (info != null) && ((info.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
二、获取包名和版本信息
package com.android.utils;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
/**
* app信息工具类
* @author null
*
*/
public class PackageUtil {
private static Context mContext;
private static PackageUtil instance;
private PackageUtil(){
mContext = CommonUtil.getContext();
}
private static PackageUtil getInstance(){
if(instance == null){
synchronized (PackageUtil.class) {
if(instance == null){
instance = new PackageUtil();
}
}
}
return instance;
}
private PackageInfo getPackageInfo(Context context){
try {
return context.getPackageManager().getPackageInfo(getName(), 0);
} catch (NameNotFoundException e) {
return null;
}
}
private String getName(){
return mContext.getPackageName();
}
private String getVersion(){
return getPackageInfo(mContext).versionName;
}
/**
* 获取应用包名
*/
public static String getPackageName(){
return getInstance().getName();
}
/**
* 获取应用版本号
*/
public static String getPackageVersion(){
return getInstance().getVersion();
}
}
结束语
以上就是本次分享的android应用开发中,package相关信息的判断和获取的实例接口。以后再有相关的也会补充到该篇博客中。最后惯例给大家推介一下我们的技术工作号,欢迎大家来交流技术问题,谢谢!