PackageUtils

来源:互联网 发布:软件锁哪个好 编辑:程序博客网 时间:2024/06/06 07:15
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;        }}

原创粉丝点击