日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 获取已安装 错误代码,android获取手机已经安装的app信息

發布時間:2025/3/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 获取已安装 错误代码,android获取手机已经安装的app信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android獲取手機已安裝APP(系統/非系統)

效果圖

主體代碼

private ListView mlistview;

private ListpackageInfoList;

private ListapplicationInfoList;

private MyAdapter myAdapter;

private PackageManager pm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main3);

mlistview=findViewById(R.id.mlistview);

getAllAppNames();

myAdapter=new MyAdapter(applicationInfoList);

mlistview.setAdapter(myAdapter);

myAdapter.notifyDataSetChanged();

mlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

doStartApplicationWithPackageName(applicationInfoList.get(position).getPackageName());

}

});

}

//自定義適配器

public class MyAdapter extends BaseAdapter{

private Listlist;

public MyAdapter(Listlist){

this.list=list;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view=null;

if(convertView==null){

view=LayoutInflater.from(Main3Activity.this).inflate(R.layout.mlistview_layout,null);

}else{

view=convertView;

}

TextView tv_packagename=view.findViewById(R.id.tv_packagename);

TextView tv_appname=view.findViewById(R.id.tv_appname);

ImageView img=view.findViewById(R.id.img);

tv_appname.setText(list.get(position).getName());

tv_packagename.setText(list.get(position).getPackageName());

img.setImageDrawable(list.get(position).getIcon());

return view;

}

}

public void getAllAppNames(){

pm=getPackageManager();

獲取到所有安裝了的應用程序的信息,包括那些卸載了的,但沒有清除數據的應用程序

// packageInfoList=pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);

applicationInfoList=new ArrayList<>();

Listlist = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);

Collections.sort(list, new ApplicationInfo.DisplayNameComparator(pm));// 排序

Log.e("-------",list.size()+"");

applicationInfoList.clear();

for (int i=0;iresolveinfoList = getPackageManager()

.queryIntentActivities(resolveIntent, 0);

if(resolveinfoList.size() == 0){

return;

}

ResolveInfo resolveinfo = resolveinfoList.iterator().next();

if (resolveinfo != null) {

String packageName = resolveinfo.activityInfo.packageName;

//App啟動的Activity

String className = resolveinfo.activityInfo.name;

// LAUNCHER Intent

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

// 設置ComponentName參數1:packagename參數2:啟動的Activity

ComponentName cn = new ComponentName(packageName, className);

intent.setComponent(cn);

startActivity(intent);

}

}

// 構造一個AppInfo對象 ,并賦值

private AppInfo getAppInfo(ApplicationInfo app) {

AppInfo appInfo = new AppInfo();

appInfo.setName(app.loadLabel(pm).toString());

appInfo.setIcon(app.loadIcon(pm));

appInfo.setPackageName(app.packageName);

return appInfo;

}

這里是定義的實體bean

public class AppInfo implements Serializable{

/** 序列號 */

private static final long serialVersionUID = -6660233212727684115L;

/** 名稱 */

public String name;

/** (路徑) */

public String path;

/** 圖標 */

public Drawable icon;

/** 包名 */

public String packageName;

public static long getSerialVersionUID() {

return serialVersionUID;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPath() {

return path;

}

public void setPath(String path) {

this.path = path;

}

public Drawable getIcon() {

return icon;

}

public void setIcon(Drawable icon) {

this.icon = icon;

}

public String getPackageName() {

return packageName;

}

public void setPackageName(String packageName) {

this.packageName = packageName;

}

}

這里是mlistview_layout.xml的布局代碼

mlistview_layout.xml布局效果圖

這里是activity_main3.xml布局代碼

activity_main3.xml效果圖

總結

以上是生活随笔為你收集整理的android 获取已安装 错误代码,android获取手机已经安装的app信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频久久 | 五月天激情视频在线观看 | 天天干人人 | 另类欧美亚洲 | av免费看在线 | 很黄很污的视频网站 | 国产精品第13页 | 精品久久久久久久久久久 | 美女羞羞动态图 | 日韩欧美理论 | 黄色片网站免费看 | www.youjizz.com视频| 8050午夜一级毛片久久亚洲欧 | 精东影业一区二区三区 | 99re在线观看视频 | 日女人网站| 无码熟妇αⅴ人妻又粗又大 | 亚洲激情成人 | 亚洲视频中文字幕在线观看 | 亚洲aaaaa特级 | 日韩av黄色片 | a免费看 | 光明影院手机版在线观看免费 | 91激情视频在线 | 亚洲国产视频一区 | 天堂在线资源网 | 午夜激情欧美 | 在线看av的网址 | 青青草在线免费 | 高h文在线 | 久久久在线免费观看 | 风韵少妇性饥渴推油按摩视频 | 亚洲gay视频 | 国产激情自拍 | 好吊视频一区二区 | 欧日韩在线观看 | 深夜福利一区二区 | 国产欧美一区二区三区在线看蜜臀 | 久久久久久久麻豆 | 免费三级网 | 国产在线国偷精品免费看 | 国产高清一区二区三区 | 9191国产精品 | 日韩精品一区二区av | 综合五月 | 精品三级视频 | 亚洲欧美日韩电影 | 天堂久久精品忘忧草 | 欧美日韩精品一区二区在线观看 | 久久精品三级视频 | 国产一区二区三区色淫影院 | 在线观看视频国产 | 韩国女主播一区 | 久久久精品亚洲 | 精品一区二区三区四 | 亚洲乱码国产乱码精品精大量 | 欧美大白屁股 | 4438x亚洲 | 海角社区在线视频播放观看 | 日日拍夜夜拍 | 夜夜爽影院 | 成人福利网站在线观看 | 亚洲顶级毛片 | 美女精品视频 | 免费黄色三级网站 | 日本免费高清视频 | 手机午夜视频 | 日韩在线三级 | 看日本黄色录像 | av资源在线 | 中文字幕视频观看 | 色涩久久 | 青青草原免费观看 | 青青操在线视频 | 极品人妻一区二区三区 | 欧美日韩一卡 | 日本人添下边视频免费 | 新红楼梦2005锦江版高清在线观看 | 91偷拍精品一区二区三区 | 奶水喷溅 在线播放 | 播五月婷婷 | 91啦中文| 欧美在线观看一区二区 | 国产xxx视频 | 最新成人 | 中文精品无码中文字幕无码专区 | 成人黄色激情网 | 午夜精品久久久久久久99热浪潮 | 91精品国产乱码久久久 | 国产av天堂无码一区二区三区 | 亚洲一区二区三区电影在线观看 | 国产男女自拍 | 波多野结衣免费看 | 黄视频免费在线看 | 国产av一区二区三区最新精品 | 99久久久无码国产精品性青椒 | 欧美青青草 | 日韩无砖| 夫妻性生活黄色片 |