本文主要是介绍获取设备上所有系统app信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
在获取android设备的所有程序信息一文中介绍了获取手机上所有app信息的方法,下面介绍过滤掉系统app的方法:
MainActivity:
package com.home.getsysapp;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.Activity;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ListView listView = new ListView(this);List<Map<String, String>> list = getSysApps();SimpleAdapter adapter = new SimpleAdapter(this, list,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);}/*** 获取系统apps* * @return*/private List<Map<String, String>> getSysApps() {List<Map<String, String>> list = new ArrayList<Map<String, String>>();Map<String, String> map = null;List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);for (PackageInfo p : packs) {ApplicationInfo appInfo = p.applicationInfo;// 为0表示非系统的,为1表示系统的if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0) {map = new HashMap<String, String>();String appName = appInfo.loadLabel(getPackageManager()).toString();String pname = appInfo.packageName;map.put("appname", appName);map.put("pname", pname);list.add(map);}}return list;}}
这篇关于获取设备上所有系统app信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!