Android中獲取apk安裝包信息的方法
一、獲取安裝包信息
* 獲取apk包的信息:版本號,名稱,圖標等
* @param absPath apk包的絕對路徑
* @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其實是一樣的 */
Drawable icon1 = pm.getApplicationIcon(appInfo);// 得到圖標信息
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安裝的時候,我們可以獲取安裝包、版本、包名等信息。
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; //得到安裝包名稱
String version=info.versionName; //得到版本信息
// Toast.makeText(TestActivity.this, , Toast.LENGTH_LONG).show();
Drawable icon = pm.getApplicationIcon(appInfo);//得到圖標信息
TextView tv = (TextView)findViewById(R.id.tv);
tv.setText("appName:"+appName+"---packageName:"+packageName);
//顯示圖標
ImageView tu=(ImageView)findViewById(R.id.imageView1);
tu.setBackgroundDrawable(icon);
}
}
}
}
}
相關(guān)文章
Android 數(shù)據(jù)庫打包隨APK發(fā)布的實例代碼
有些時候我們的軟件用到SQLite數(shù)據(jù)庫,這個時候怎么把一個做好的數(shù)據(jù)庫打包進我們的APK呢2013-10-10Android BroadcastReceiver接收收到短信的廣播
這篇文章主要為大家詳細介紹了Android BroadcastReceiver接收收到短信的廣播,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05Kotlin的Collection與Sequence操作異同點詳解
這篇文章主要介紹了Kotlin的Collection與Sequence操作異同點詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10Android?自定義view中根據(jù)狀態(tài)修改drawable圖片
這篇文章主要介紹了Android?自定義view中根據(jù)狀態(tài)修改drawable圖片的相關(guān)資料,需要的朋友可以參考下2023-07-07Android編程自定義搜索框?qū)崿F(xiàn)方法【附demo源碼下載】
這篇文章主要介紹了Android編程自定義搜索框?qū)崿F(xiàn)方法,涉及Android界面布局、數(shù)據(jù)加載、事件響應(yīng)等相關(guān)操作技巧,并附帶完整demo源碼供讀者下載參考,需要的朋友可以參考下2017-12-12Android通過Handler與AsyncTask兩種方式動態(tài)更新ListView(附源碼)
這篇文章主要介紹了Android通過Handler與AsyncTask兩種方式動態(tài)更新ListView的方法,結(jié)合實例形式分析了ListView動態(tài)更新的常用技巧,并附上完整實例源碼供讀者下載,需要的朋友可以參考下2015-12-12Android編程實現(xiàn)QQ表情的發(fā)送和接收完整實例(附源碼)
這篇文章主要介紹了Android編程實現(xiàn)QQ表情的發(fā)送和接收的方法,涉及Android圖片資源、正則表達式及對話框的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11