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開發(fā)入門與進(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)文章
Android12四大組件之Activity生命周期變化詳解
雖然說(shuō)我們天天都在使用Activity,但是你真的對(duì)Activity的生命機(jī)制完全了解了嗎?Activity的生命周期方法只有七個(gè),但是其實(shí)那只是默認(rèn)的情況。也就是說(shuō)在其他情況下,Activity的生命周期可能不會(huì)是按照我們以前所知道的流程,本章著重講解Activity的生命周期變化2022-07-07
實(shí)例探究Android應(yīng)用編寫時(shí)Fragment的生命周期問(wèn)題
這篇文章主要介紹了Android應(yīng)用編寫時(shí)Fragment的生命周期問(wèn)題探究,resumed和paused以及stoped三種狀態(tài)的控制需要熟練掌握,需要的朋友可以參考下2016-02-02
Android RetainFragment狀態(tài)保存的方法
本篇文章主要介紹了Android RetainFragment狀態(tài)保存的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Android基于OpenCV實(shí)現(xiàn)QR二維碼檢測(cè)
QR碼比普通一維條碼具有快速讀取和更大的存儲(chǔ)資料容量,也無(wú)需要像一維條碼般在掃描時(shí)需要直線對(duì)準(zhǔn)掃描儀。因此其應(yīng)用范圍已經(jīng)擴(kuò)展到包括產(chǎn)品跟蹤,物品識(shí)別,文檔管理,庫(kù)存營(yíng)銷等方面。本文講解Android基于OpenCV實(shí)現(xiàn)QR二維碼檢測(cè)的步驟2021-06-06
Android?Canva實(shí)現(xiàn)漸變進(jìn)度條
這篇文章主要為大家介紹了Android?Canva實(shí)現(xiàn)漸變進(jìn)度條示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Android Handler移除Message詳解及實(shí)例代碼
這篇文章主要介紹了Android Handler移除Message詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
android應(yīng)用開發(fā)之spinner控件的簡(jiǎn)單使用
Android的控件有很多種,其中就有一個(gè)Spinner的控件,這個(gè)控件其實(shí)就是一個(gè)下拉顯示列表。本文通過(guò)腳本之家平臺(tái)給大家介紹android應(yīng)用開發(fā)之spinner控件的簡(jiǎn)單使用,感興趣的朋友可以參考下2015-11-11
Android新建水平節(jié)點(diǎn)進(jìn)度條示例
這篇文章主要為大家介紹了Android新建水平節(jié)點(diǎn)進(jìn)度條示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

