package com.example.likeqq;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
ListView lv;
SimpleAdapter adapter;
ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String, Object>>();
PackageManager pm;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv = (ListView) findViewById(R.id.listview);
final PackageManager pm = getPackageManager();
// 得到PackageManager对象
List<PackageInfo> packs = pm
.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
// 得到系统 安装的所有程序包的PackageInfo对象
for (PackageInfo pi : packs) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("icon", pi.applicationInfo.loadIcon(pm));
// 图标
map.put("appName", pi.applicationInfo.loadLabel(pm));
// 应用名
map.put("packageName", pi.packageName);
// 包名
items.add(map);
// 循环读取存到HashMap,再增加到ArrayList.一个HashMap就是一项
}
adapter = new SimpleAdapter(this, items, R.layout.piitem, new String[] {
"icon", "appName", "packageName" }, new int[] { R.id.icon,
R.id.appName, R.id.packageName });
// 参数:Context,ArrayList(item的集合),item的layout,包含ArrayList中Hashmap的key的数组,key所对应的值相对应的控件id
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String packageName = (String) items.get(position).get(
"packageName");
//取到点击的包名
Intent i = pm.getLaunchIntentForPackage(packageName);
//如果该程序不可启动(像系统自带的包,有很多是没有入口的)会返回NULL
if (i != null)
startActivity(i);
}
});
}
}
布局文件就不添加了,都是listView的基础布局
分享到:
相关推荐
下载并运行“driverview”压缩包中的应用程序,它会列出所有系统驱动,方便用户查找和管理驱动程序。 了解设备驱动程序列表对于系统维护和故障排查至关重要。驱动程序的问题可能会导致显示器显示异常,如颜色失真、...
当用户点击任一应用图标时,系统会响应并打开相应的应用程序,这是launch界面最基础但至关重要的功能。通过这种方式,用户可以无缝地进入他们想要使用的应用,无需进行复杂的操作。 此外,为了增加用户操作的便利性...
应用程序初始化后,会进入一个消息循环,不断从消息队列中读取并处理消息,直到接收到退出消息(如WM_QUIT)。这一过程中,MFC的类库自动处理大部分基础的窗口管理和事件响应,开发者主要关注的是应用程序特有的业务...
- **选择应用程序管理**:在控制台左侧菜单栏中找到“资源”->“应用程序”选项,点击进入应用程序管理页面。 - **上传应用程序包**:点击右上角的“添加”按钮,选择你的`.war`或`.ear`文件进行上传。 - **配置应用...
在IT行业中,小程序是一种轻量级的应用程序,它无需下载安装即可使用,为用户提供便捷的服务。本主题聚焦于“小程序_界面图片列表_视频播放”,这意味着我们将探讨如何在小程序中设计和实现一个集图片列表与视频播放...
【Android 应用程序开发】是一门涉及到在线编程技术的学科,主要在App Inventor 2平台上进行。在这个平台上,开发者可以构建具有图形用户界面(GUI)的Android应用程序,而无需深入理解底层的编程语言。以下是对...
想要找出系统运行出错的地方,可以使用内置的活动监视器,点击进入 Finder,在导航栏内找到“应用程序实用工具活动监测器”,打开活动监测器,所有正在运行的应用程序都会显示出来,包括每个软件所占的 CPU、内存、...
进入管理中心,选择“应用程序管理”,然后点击“管理服务应用程序”。这里显示了当前服务器场中的所有服务应用程序状态。 创建新服务应用程序的过程如下: 1. 在“管理服务应用程序”页面,点击“新建”下拉菜单...
建立一个基于对话框的MFC应用程序 本文将指导读者建立一个基于对话框的MFC应用程序,从零开始,逐步介绍如何使用VC++6.0创建一个基于对话框的MFC应用程序,并且添加串口通信控件,实现串口数据的发送和接收。 MFC...
点击"确定",你会进入"Win32应用程序向导",在此你可以选择应用程序类型,如空项目或基于对话框的项目。对于初学者,通常选择"空项目"即可。 创建项目后,Visual C++6.0会自动生成一些默认文件,包括源代码文件...
找到需要卸载的应用,右键点击磁贴,或在触屏上按住图标稍作拖动,底部会显示应用设置栏,点击“卸载”图标即可删除应用。 **二、传统桌面应用程序的安装与卸载** 1. **安装**: 对于传统桌面应用程序,安装方式与...
4. **运行和测试**:按F5键编译并运行应用程序,点击按钮后,会在标签控件上显示“Hello, World!”,表明程序运行成功。 ### 集成开发环境的主要组件 - **菜单**:提供开发环境的主要功能,如新建、打开、保存、...
实验五的目的是创建一个Web应用程序,具体涉及到使用Microsoft Visual Studio创建网页、设计用户界面以及与Access数据库进行交互。以下是对实验内容的详细说明: 1. **启动Visual Studio**:首先打开Visual Studio...
点击此选项,系统会列出所有已安装在您的Win10计算机上的应用程序。 5. 在“应用和功能”页面,应用程序按字母顺序排列。滚动找到您想要卸载的程序,然后点击该程序的名称。这将展开更多关于该应用的详细信息,如...
- 在模拟器上,进入应用程序列表查看是否已成功安装该应用。 - 可以尝试启动应用程序,以确保其可以正常运行。 #### 五、卸载应用程序 1. **打开设置界面:** - 在模拟器上,进入“设置”->“应用程序”->...
2. **新建项目**:点击“新建项目”按钮,这将引导您进入一个新的界面,在这里您可以选择创建不同类型的应用程序。 3. **选择项目类型**:在新建项目界面中,选择“Visual C#”类别下的“Windows窗体应用程序”,...
通常,应用程序在启动后会进入消息循环,不断接收并处理用户输入,直到用户选择退出。退出应用程序的方式多种多样,比如点击主窗口的关闭按钮、通过系统菜单选择“关闭”或在“文件”菜单中选择“退出”。 当用户从...
在Android应用程序开发中,添加广告是常见的盈利策略,可以为开发者带来额外的收入。本示例将详细讲解如何在Android应用中集成广告,主要涉及以下几个关键步骤和知识点: 1. **选择广告网络**:首先,你需要选择一...
在本文中,我们将深入探讨如何开发一个基于LoRa技术的温湿度传感器节点应用程序,并进行程序烧写的过程。LoRa(Long Range)是一种低功耗、远距离无线通信技术,广泛应用于物联网(IoT)设备中,如温湿度传感器。通过...