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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值