public class MainActivity extends AppCompatActivity { private PackageManager pManager; // 用來記錄應用程序的信息 List<AppsItemInfo> list; private TextView tv; private List<String> data = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.textView); // 獲取圖片、應用名、包名 pManager = MainActivity.this.getPackageManager(); List<PackageInfo> appList = getAllApps(MainActivity.this); list = new ArrayList<>(); for (int i = 0; i < appList.size(); i++) { PackageInfo pinfo = appList.get(i); AppsItemInfo shareItem = new AppsItemInfo(); // 設置圖片 // shareItem.setIcon(pManager // .getApplicationIcon(pinfo.applicationInfo)); // // 設置應用程序名字 // shareItem.setLabel(pManager.getApplicationLabel( // pinfo.applicationInfo).toString()); // // 設置應用程序的包名 // shareItem.setPackageName(pinfo.applicationInfo.packageName); // // list.add(shareItem); data.add(pManager.getApplicationLabel( pinfo.applicationInfo).toString()); Log.e("Mr.Kang", "onCreate: "+pManager.getApplicationLabel( pinfo.applicationInfo).toString()+" "); } Log.e("Mr.Kang", "onCreate:===== "+data.size()); } public static List<PackageInfo> getAllApps(Context context) { List<PackageInfo> apps = new ArrayList<PackageInfo>(); PackageManager pManager = context.getPackageManager(); // 獲取手機內所有應用 List<PackageInfo> packlist = pManager.getInstalledPackages(0); for (int i = 0; i < packlist.size(); i++) { PackageInfo pak = (PackageInfo) packlist.get(i); // 判斷是否爲非系統預裝的應用程序 // 這裏還可以添加系統自帶的,這裏就先不添加了,如果有需要可以自己添加 // if()裏的值如果<=0則爲自己裝的程序,否則爲系統工程自帶 if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) { // 添加自己已經安裝的應用程序 apps.add(pak); } } return apps; } // 自定義一個 AppsItemInfo 類,用來存儲應用程序的相關信息 private class AppsItemInfo { private Drawable icon; // 存放圖片 private String label; // 存放應用程序名 private String packageName; // 存放應用程序包名 public Drawable getIcon() { return icon; } public void setIcon(Drawable icon) { this.icon = icon; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; } } }
獲取手機內所有應用程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.