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; } }