獲取android系統上的所有程序信息
下面的示例可以獲取手機上所有的應用程序信息,代碼如下:MainActivity:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.Activity;
import android.content.pm.PackageInfo;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.SimpleAdapter;public class MainActivity extends Activity {
private List<Map<String, Object>> data; Map<String, Object> item; private ListView listView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); listView = new ListView(this); data = new ArrayList<Map<String, Object>>(); listPackages(); SimpleAdapter adapter = new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, new String[] { "appname", "pname" }, new int[] { android.R.id.text1, android.R.id.text2, }); listView.setAdapter(adapter); setContentView(listView); } class PInfo { private String appname = ""; private String pname = ""; private String versionName = ""; private int versionCode = 0; private Drawable icon; private void prettyPrint() { Log.i("taskmanger", appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t"); } } /** * 列出所有的APP信息 */ private void listPackages() { ArrayList<PInfo> apps = getInstalledApps(false); final int max = apps.size(); for (int i = 0; i < max; i++) { apps.get(i).prettyPrint(); item = new HashMap<String, Object>(); item.put("appname", apps.get(i).appname); item.put("pname", apps.get(i).pname); data.add(item); } } /** * 獲取系統所有已安裝的APP信息 * * @param getSysPackages * @return */ private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) { ArrayList<PInfo> res = new ArrayList<PInfo>(); List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); for (int i = 0; i < packs.size(); i++) { PackageInfo p = packs.get(i); if ((!getSysPackages) && (p.versionName == null)) { continue; } PInfo newInfo = new PInfo(); newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()) .toString(); newInfo.pname = p.packageName; newInfo.versionName = p.versionName; newInfo.versionCode = p.versionCode; newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); res.add(newInfo); } return res; }
} </pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!