Android中獲取apk安裝包信息的方法
一、獲取安裝包信息
* 獲取apk包的信息:版本號(hào),名稱(chēng),圖標(biāo)等
* @param absPath apk包的絕對(duì)路徑
* @param context
*/
public void apkInfo(String absPath,Context context) {
PackageManager pm = context.getPackageManager();
PackageInfo pkgInfo = pm.getPackageArchiveInfo(absPath,PackageManager.GET_ACTIVITIES);
if (pkgInfo != null) {
ApplicationInfo appInfo = pkgInfo.applicationInfo;
/* 必須加這兩句,不然下面icon獲取是default icon而不是應(yīng)用包的icon */
appInfo.sourceDir = absPath;
appInfo.publicSourceDir = absPath;
String appName = pm.getApplicationLabel(appInfo).toString();// 得到應(yīng)用名
String packageName = appInfo.packageName; // 得到包名
String version = pkgInfo.versionName; // 得到版本信息
/* icon1和icon2其實(shí)是一樣的 */
Drawable icon1 = pm.getApplicationIcon(appInfo);// 得到圖標(biāo)信息
Drawable icon2 = appInfo.loadIcon(pm);
String pkgInfoStr = String.format("PackageName:%s, Vesion: %s, AppName: %s", packageName, version, appName);
Log.i(TAG, String.format("PkgInfo: %s", pkgInfoStr));
}
}
二、在APK安裝的時(shí)候,我們可以獲取安裝包、版本、包名等信息。
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String archiveFilePath="sdcard/jb51.net.apk";//安裝包路徑
PackageManager pm = getPackageManager();
PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);
if(info != null){
ApplicationInfo appInfo = info.applicationInfo;
String appName = pm.getApplicationLabel(appInfo).toString();
String packageName = appInfo.packageName; //得到安裝包名稱(chēng)
String version=info.versionName; //得到版本信息
// Toast.makeText(TestActivity.this, , Toast.LENGTH_LONG).show();
Drawable icon = pm.getApplicationIcon(appInfo);//得到圖標(biāo)信息
TextView tv = (TextView)findViewById(R.id.tv);
tv.setText("appName:"+appName+"---packageName:"+packageName);
//顯示圖標(biāo)
ImageView tu=(ImageView)findViewById(R.id.imageView1);
tu.setBackgroundDrawable(icon);
}
}
}
}
}
相關(guān)文章
Android 數(shù)據(jù)庫(kù)SQLite 寫(xiě)入SD卡的方法
如果手機(jī)沒(méi)有root,數(shù)據(jù)庫(kù)文件是無(wú)法查看到的,不方便調(diào)試。最好的辦法是把數(shù)據(jù)庫(kù)寫(xiě)進(jìn)SD卡。通過(guò)本文給大家介紹Android 數(shù)據(jù)庫(kù)SQLite 寫(xiě)入SD卡的方法,需要的朋友參考下吧2016-04-04
解決Android Studio 出現(xiàn)“Cannot resolve symbo
今天在調(diào)試的時(shí)候,Android Studio報(bào)了一個(gè)莫名其妙的錯(cuò)誤Cannot resolve symbol'R'讓人不知所措,因?yàn)檫@東西根本不歸我管啊,怎么會(huì)出現(xiàn) Cannot resolve symbol 這種錯(cuò)誤呢?下面給大家分享Android Studio 出現(xiàn)“Cannot resolve symbol”解決方案,需要的朋友可以參考下2023-03-03
Android自定義view Path 的高級(jí)用法之搜索按鈕動(dòng)畫(huà)
這篇文章主要介紹了Android自定義view Path 的高級(jí)用法之搜索按鈕動(dòng)畫(huà),需要的朋友可以參考下2017-06-06
Android實(shí)現(xiàn)消息提醒小紅點(diǎn)效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)消息提醒小紅點(diǎn)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
三種Android單擊事件onclick的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了三種Android單擊事件onclick的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下2016-05-05
android使用url connection示例(get和post數(shù)據(jù)獲取返回?cái)?shù)據(jù))
這篇文章主要介紹了android使用URLConnection來(lái)get和post數(shù)據(jù)獲取返回的數(shù)據(jù),大家參考使用吧2014-01-01
Android實(shí)現(xiàn)檢測(cè)實(shí)體按鍵事件并屏蔽
這篇文章主要介紹了Android實(shí)現(xiàn)檢測(cè)實(shí)體按鍵事件并屏蔽 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08

