編輯:關於Android編程
獲取Android手機上其他應用的包名及版本號方法有很多,可以通過AAPT從APK包中直接獲取,也可以通過代碼在手機上獲取。顯然,對於產品或者用戶來說要獲取這些信息,在手機上獲取更為簡便。
下面我們來看下如何在手機上獲取其他應用的包名、版本號。
核心:通過PackageManager可以獲取到我們想要的信息,例如:程序圖標、程序名稱、包名、VersionName、VersionCode等。
/* * @Author Sun Ruichuan * * */ public ArrayList> getItems(Context context) { PackageManager pckMan = context.getPackageManager(); ArrayList > items = new ArrayList >(); List packageInfo = pckMan.getInstalledPackages(0); for (PackageInfo pInfo : packageInfo) { HashMap item = new HashMap (); item.put(appimage, pInfo.applicationInfo.loadIcon(pckMan)); item.put(packageName, pInfo.packageName); item.put(versionCode, pInfo.versionCode); item.put(versionName, pInfo.versionName); item.put(appName, pInfo.applicationInfo.loadLabel(pckMan).toString()); items.add(item); } return items; }
在獲取到所需要的信息後即可將這些信息放入到自定義的ListAdaptar裡。
class MyAdapter extends BaseAdapter { public class Holder { TextView tv_pakagename; TextView tv_versioncode; TextView tv_versionname; TextView tv_appname; ImageView iv_logo; } @Override public int getCount() { return allProcess.size(); } @Override public HashMapgetItem(int position) { return allProcess.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; View v; if (convertView == null) { holder = new Holder(); v = LayoutInflater.from(getApplicationContext()).inflate( R.layout.list_menu, null); holder.tv_pakagename = (TextView) v .findViewById(R.id.tv_pakagename); holder.tv_versioncode = (TextView) v .findViewById(R.id.tv_versioncode); holder.tv_versionname = (TextView) v .findViewById(R.id.tv_versionname); holder.iv_logo = (ImageView) v.findViewById(R.id.iv_logo); holder.tv_appname = (TextView) v.findViewById(R.id.tv_appname); v.setTag(holder); } else { v = convertView; holder = (Holder) v.getTag(); } holder.tv_pakagename.setText(包名: + allProcess.get(position).get(packageName).toString()); holder.tv_versioncode.setText(VersionCode: + allProcess.get(position).get(versionCode).toString()); holder.tv_versionname.setText(VersionName: + allProcess.get(position).get(versionName).toString()); holder.iv_logo.setImageDrawable((Drawable) allProcess.get(position) .get(appimage)); holder.tv_appname.setText(App名稱: + allProcess.get(position).get(appName).toString()); return v; } }
上周寫完那篇Blog之後就一直做著被分配到的Web任務,也就沒繼續捯饬N那些事,然後今天還在看Notification這部分,然後看到了LNotification這個包,
這是我在 MDCC 上分享的內容(略微改動),也是源碼解析第一期發布時介紹的源碼解析後續會慢慢做的事。從總體設計和原理上對幾個圖片緩存進行對比,沒用到他們的朋友也可以了解
上一篇文章主要講述了Android的TouchEvent的分發過程,其中有兩個重要的函數:onInterceptTouchEvent和onTouchEvent,這兩個函數
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式來開發移動手機APP,因此當頁面需要獲取手機內部某些信息時(例如:聯系人信息,坐