Android編程實(shí)現(xiàn)應(yīng)用獲取包名、版本號(hào)、權(quán)限等信息的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)應(yīng)用獲取包名、版本號(hào)、權(quán)限等信息的方法。分享給大家供大家參考,具體如下:
/** * 獲取當(dāng)前應(yīng)用程序的包名 * @param context 上下文對(duì)象 * @return 返回包名 */ public static String getAppProcessName(Context context) { //當(dāng)前應(yīng)用pid int pid = android.os.Process.myPid(); //任務(wù)管理類 ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //遍歷所有應(yīng)用 List<ActivityManager.RunningAppProcessInfo> infos = manager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo info : infos) { if (info.pid == pid)//得到當(dāng)前應(yīng)用 return info.processName;//返回包名 } return ""; } /** * 獲取程序 圖標(biāo) * @param context * @param packname 應(yīng)用包名 * @return */ public Drawable getAppIcon(Context context,String packname){ try { //包管理操作管理類 PackageManager pm = context.getPackageManager(); //獲取到應(yīng)用信息 ApplicationInfo info = pm.getApplicationInfo(packname, 0); return info.loadIcon(pm); } catch (NameNotFoundException e) { e.printStackTrace(); } return null; } /** * 獲取程序的版本號(hào) * @param context * @param packname * @return */ public String getAppVersion(Context context,String packname){ //包管理操作管理類 PackageManager pm = context.getPackageManager(); try { PackageInfo packinfo = pm.getPackageInfo(packname, 0); return packinfo.versionName; } catch (NameNotFoundException e) { e.printStackTrace(); } return packname; } /** * 獲取程序的名字 * @param context * @param packname * @return */ public String getAppName(Context context,String packname){ //包管理操作管理類 PackageManager pm = context.getPackageManager(); try { ApplicationInfo info = pm.getApplicationInfo(packname, 0); return info.loadLabel(pm).toString(); } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return packname; } /* * 獲取程序的權(quán)限 */ public String[] getAllPermissions(Context context,String packname){ try { //包管理操作管理類 PackageManager pm = context.getPackageManager(); PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_PERMISSIONS); //獲取到所有的權(quán)限 return packinfo.requestedPermissions; } catch (NameNotFoundException e) { e.printStackTrace(); } return null; } /** * 獲取程序的簽名 * @param context * @param packname * @return */ public static String getAppSignature(Context context,String packname){ try { //包管理操作管理類 PackageManager pm = context.getPackageManager(); PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES); //獲取當(dāng)前應(yīng)用簽名 return packinfo.signatures[0].toCharsString(); } catch (NameNotFoundException e) { e.printStackTrace(); } return packname; } /** * 獲取當(dāng)前展示 的Activity名稱 * @return */ private static String getCurrentActivityName(Context context){ ActivityManager activityManager=(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName(); return runningActivity; }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android調(diào)試技巧與常見(jiàn)問(wèn)題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android自定義View實(shí)現(xiàn)隨手勢(shì)滑動(dòng)控件
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)隨手勢(shì)滑動(dòng)的控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02在Android項(xiàng)目中使用AspectJ的詳細(xì)攻詻
AspectJ是實(shí)現(xiàn)AOP的其中一款框架,內(nèi)部通過(guò)處理字節(jié)碼實(shí)現(xiàn)代碼注入,文章給大家提到AspectJ基礎(chǔ)語(yǔ)法和集成AspectJ的方式,對(duì)AspectJ在android中使用教程感興趣的朋友跟隨小編一起看看吧2021-06-06Android多功能時(shí)鐘開(kāi)發(fā)案例(實(shí)戰(zhàn)篇)
這篇文章主要為大家詳細(xì)介紹了Android多功能時(shí)鐘開(kāi)發(fā)案例,開(kāi)發(fā)了時(shí)鐘、鬧鐘、計(jì)時(shí)器和秒表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05Android ListView列表控件的介紹和性能優(yōu)化
這篇文章主要介紹了Android ListView列表控件的介紹和性能優(yōu)化,需要的朋友可以參考下2017-06-06

淺析Android位置權(quán)限以及數(shù)組尋找索引的坑