Android編程實現(xiàn)應(yīng)用獲取包名、版本號、權(quán)限等信息的方法
本文實例講述了Android編程實現(xiàn)應(yīng)用獲取包名、版本號、權(quán)限等信息的方法。分享給大家供大家參考,具體如下:
/**
* 獲取當前應(yīng)用程序的包名
* @param context 上下文對象
* @return 返回包名
*/
public static String getAppProcessName(Context context) {
//當前應(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)//得到當前應(yīng)用
return info.processName;//返回包名
}
return "";
}
/**
* 獲取程序 圖標
* @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;
}
/**
* 獲取程序的版本號
* @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);
//獲取當前應(yīng)用簽名
return packinfo.signatures[0].toCharsString();
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return packname;
}
/**
* 獲取當前展示 的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開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android12四大組件之Activity生命周期變化詳解
雖然說我們天天都在使用Activity,但是你真的對Activity的生命機制完全了解了嗎?Activity的生命周期方法只有七個,但是其實那只是默認的情況。也就是說在其他情況下,Activity的生命周期可能不會是按照我們以前所知道的流程,本章著重講解Activity的生命周期變化2022-07-07
實例探究Android應(yīng)用編寫時Fragment的生命周期問題
這篇文章主要介紹了Android應(yīng)用編寫時Fragment的生命周期問題探究,resumed和paused以及stoped三種狀態(tài)的控制需要熟練掌握,需要的朋友可以參考下2016-02-02
Android RetainFragment狀態(tài)保存的方法
本篇文章主要介紹了Android RetainFragment狀態(tài)保存的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
Android基于OpenCV實現(xiàn)QR二維碼檢測
QR碼比普通一維條碼具有快速讀取和更大的存儲資料容量,也無需要像一維條碼般在掃描時需要直線對準掃描儀。因此其應(yīng)用范圍已經(jīng)擴展到包括產(chǎn)品跟蹤,物品識別,文檔管理,庫存營銷等方面。本文講解Android基于OpenCV實現(xiàn)QR二維碼檢測的步驟2021-06-06
Android Handler移除Message詳解及實例代碼
這篇文章主要介紹了Android Handler移除Message詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
android應(yīng)用開發(fā)之spinner控件的簡單使用
Android的控件有很多種,其中就有一個Spinner的控件,這個控件其實就是一個下拉顯示列表。本文通過腳本之家平臺給大家介紹android應(yīng)用開發(fā)之spinner控件的簡單使用,感興趣的朋友可以參考下2015-11-11

