【android应用】android应用开发中,package相关信息的判断和获取--系统权限、版本号、包名等

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相关信息的判断和获取的实例接口。以后再有相关的也会补充到该篇博客中。最后惯例给大家推介一下我们的技术工作号,欢迎大家来交流技术问题,谢谢!

在这里插入图片描述

发布了61 篇原创文章 · 获赞 45 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/twk121109281/article/details/102801804