`
gryphone
  • 浏览: 426875 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

获取Launcher 启动列表

阅读更多

获取Launcher 启动列表

 

即 列出所有Launcher程序 通过PackageManager 来获取

 

 

 

 

[代码 步骤]

 

1. 定义内部类 LauncherItem  用于定义Application相关属性 比如:图标 名称 以及 ComponentName

 

public class LauncherItem {
		Drawable icon;
		String name;
		ComponentName component;
		
		LauncherItem(Drawable d, String s,ComponentName cn){
			icon = d;
			name = s;
			component = cn;
		}
	};

 

 

 

2.  定义List<LauncherItem> lvalue 用于存放查询结果

 

public void addLauncher(){
    	lvalue = new ArrayList<LauncherItem>();
    	
    	pkgMgt = this.getPackageManager();
    	
    	//to query all launcher & load into List<>
    	Intent it = new Intent(Intent.ACTION_MAIN);
        it.addCategory(Intent.CATEGORY_LAUNCHER); 
        
        List<ResolveInfo> ra =pkgMgt.queryIntentActivities(it,0);
        
        for(int i=0;i<ra.size();i++){
        	ActivityInfo ai = ra.get(i).activityInfo;
        	
        	//String ainfo = ai.toString();
        	Drawable icon = ai.loadIcon(pkgMgt);
        	String label = ai.loadLabel(pkgMgt).toString();
        	ComponentName c = new ComponentName(ai.applicationInfo.packageName,ai.name);
        	
        	
        	LauncherItem item = new LauncherItem(icon,label,c);
        	
        	lvalue.add(item);
        }
    	
    }

 

 

 

3. 定义LauncherAdapter 并指定各个item显示样式

 

public class LauncherAdapter extends BaseAdapter {
    	Activity activity;
    	
    	public LauncherAdapter(Activity a){
    		activity = a;
    	}
    	
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return lvalue.size();
		}

		@Override
		public Object getItem(int arg0) {
			// TODO Auto-generated method stub
			return arg0;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			return composeItem(position);
		}
    	
    	public View composeItem(int position){
    		LinearLayout layout = new LinearLayout(activity);
            layout.setOrientation(LinearLayout.HORIZONTAL);
        	
        	ImageView iv = new ImageView(activity);
        	iv.setImageDrawable(lvalue.get(position).icon);
        	layout.addView(iv);
        	
        	TextView tv = new TextView(activity);
        	tv.setText(lvalue.get(position).name);
        	tv.setPadding(10, 5, 0, 0);
        	layout.addView(tv);
        	
        	return layout;
    	}
    	
    	
    	
    }

 

 

4. 启动某个item 当单击时

 

adapter = new LauncherAdapter(this);
        lv.setAdapter(adapter);
        
        lv.setOnItemClickListener(new OnItemClickListener(){

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				Intent intent =new Intent(Intent.ACTION_VIEW);  
				intent.setComponent(lvalue.get(arg2).component);
				startActivity(intent);
			}
        	
        });

  

 

 

5.  emulator 结果结果

 

- 列出所有application

 

 

 

- 单击Alarm Clock 的情形:

 

 

 

 

有问题请跟帖  否则 请顶贴  谢谢!

 

 

 

分享到:
评论
10 楼 haoluziqi 2011-06-15  
不错,学习了。。。
9 楼 feifei694893239 2011-04-26  
学习了,感谢分享
8 楼 surefan 2011-04-18  
有个很好的方法可以试试,2.0以后才有的 ^_^
PackageManager pm;
Intent intent = pm.getLaunchIntentForPackage(packageName);
7 楼 greenboy1 2011-04-18  
呵呵 真不错哈
6 楼 bydwmq 2010-11-21  
有什么办法可能拿到刚刚下载安装的应用程序(apk)的基本信息吗?比如AppName,icon,并放入指定的listView里面
5 楼 leizhangmmmooo 2010-11-17  
楼主可否把源码发给我看看  hbsz_zl_love@126.com   谢谢了
4 楼 1927105 2010-09-01  
有点像进程管家,是吧?
3 楼 terryno2 2010-08-21  
跟楼主请教个菜鸟问题。
我想查看下PackageManager 的queryIntentActivities方法是怎样实现的,但发现PackageManager 是抽象类,queryIntentActivities是抽象方法,获得PackageManager实例的getPackageManager方法,是ContextWrapper的方法,但在ContextWrapper中没有发现有setPackageManager或createPackageManager之类的方法,那我怎样才能找到PackageManager 的实现类呢
2 楼 winddu 2010-06-22  
先感谢楼主,但我没有调通过这些代码,请楼主再把代码打包放出来好吗?
1 楼 zhs2472 2010-06-22  
不错  学习了

相关推荐

    Android launcher应用讲解

    Launcher即启动器,也就是home,一般叫桌面,即 home screen。 Launcher的代码位于packages/apps/Launcher目录及Launcher2目录。(2.1为Launcher) home screen是一个应用,作为Home启动,为必须应用。 只要在...

    xsolla-launcher-build

    如果您的 Xsolla Launcher 版本早于 2.6.0,请阅读以获取更新。 自 Launcher 版本 2.11.0 起,我们将 Launcher 和 Build 加载器二进制文件移动到发行版。 您将在找到最新版本。 用于完整的 Launcher 集成。 用于...

    behat-launcher:从浏览器启动Behat测试

    获取代码 转到要安装Behat-Launcher的文件夹,然后通过git命令克隆源代码: cd /var/www git clone git@github.com:alexandresalome/behat-launcher.git cd behat-launcher 2.安装依赖项 Behat-Launcher与,后者...

    discreet-launcher:享受干净的主屏幕,同时立即访问所有内容!

    出于速度和限制电池使用的考虑,仅在启动Discreet Launcher时才获取已安装应用程序的列表。 您可以随时从菜单中刷新它,例如,如果没有出现新安装的应用程序。 Discreet Launcher是开源的,不需要任何不必要的权限...

    pharo-launcher:让您管理您的pharo图像并下载新的

    法鲁发射器 Pharo Launcher是一个跨平台应用程序,它可以 使您可以管理Pharo图像(启动,重命名...如何获取并安装Pharo Launcher? 有关详细的下载和安装说明,请参见 。 Pharo Launcher文档 Pharo Launcher文档可在

    Android6.0 Launcher2应用解析

    在之前我们分析了Android6.0系统在启动时安装应用程序的过程,这些应用程序安装好之后,Launcher应用就负责把它们在桌面上展示出来。 一、AMS启动Launcher  Launcher应用是在AMS的systemReady方法中直接调用...

    minecraft-launcher-core-node:与Minecraft启动器相关的各种有用软件包

    我的世界启动器核心 提供一些有用的功能来构建Minecraft Launcher。 大多数软件包都针对环境。 随时报告与此有关的问题。寻找C#启动器核心吗? 介绍.net框架启动器核心 。 它是用C#编写的下一代Minecraft启动器...

    karma-webdriverjs-launcher:Karma 的插件。 使用 WebDriverJS 的远程 WebDriver 实例启动器

    但是,它使用不同的 WebDriver 实现( 而不是 ),并且更加努力地从 Selenium Grid 获取浏览器实例。安装尚未在 NPM 注册表上发布。 目前,您需要使用其 Github 网址将其添加到您的devDependencies ,如下所示: ...

    OoeyGUI MESS Launcher:GUI启动器,用于启动MAME仿真的TI-99 16位计算机系统-开源

    Chris Schneider [SHIFT838]已将OoeyGUI MESS Launcher编码为前端启动器,可与MAME一起轻松启动仿真的TI-99 / 2,TI-99 / 4,TI-99 / 4A,TI-99 / 8和Myarc Geneve 9640计算机系统。 此应用程序已经过MAME v0.225b和...

    详解appium+python 启动一个app步骤

    2.获取launcherActivity。获取这两个关键东西的方法很多,推荐使用sdk自带的aapt:aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity,当然还有更多的功能,...

    material-OS-launcher:Quantum OS 的启动器原型

    这种启动栏的主要目标是提供一种快速打开应用程序、查找本地文件、执行简单任务(即计算、终止进程、转换单位...)和获取格式化信息(即谷歌搜索结果、地点的天气,地点的时间......)。 就功能而言,该项目的灵感...

    d4launcher:D4 的替代启动器 - 黑暗梦想不会消亡

    d4启动器D4 的替代启动器 - 黑暗梦想不会消亡这是一个非常简单的 D4 C# Winforms 启动器。 与原始版本不同,它实际上是从 Windows 获取可用分辨率列表。 玩得开心! 杜randint

    用于MS Office Online:trade_mark:的键盘启动器「Keyboard Launcher for MS Office Online:trade_mark:」-crx插件

    快速启动Microsoft Office Online应用程序的键盘快捷键:Word,Excel和PowerPoint。...请访问主页以获取更多信息:https://browsernative.com/microsoft-office-online-launcher/ 支持语言:English

    sfdx-org-launcher:用于管理sfdx组织的GUI

    sfdx-org-launcher 用于管理SFDX ORG的简单GUI。 特征 查看经过身份验证的组织的列表快速搜索 启动组织(在浏览器中登录) 验证新组织 删除组织 使用过期的令牌修复组织 未来功能 支持草稿组织 Windows,Linux...

    quicklauncher:一个基于Qt的最小菜单,可快速查找和执行Maya命令和用户脚本

    有很多方法可以解决此问题,但是对于临时用户,我建议您获取,只需将quicklauncher.py复制到您的maya脚本目录中。 如果您是开发人员或想在管道中集成Quicklauncher,我强烈建议您使用标准setup.py脚本,因为它具有...

    ModuleLauncher.Re:ModuleLauncher.Re进行开发Minecraft启动器变得高效而优雅

    介绍如你所见,ModuleLauncher这个项目是的C#版本,它具有以下特性:支持1.7.10及以上的加载器和原版Minecraft不保证可以启动1.7.10之前的Minecraft支持补全Minecraft缺失的资源和库文件支持获取几乎整个首页的新闻...

    Wands Launcher-crx插件

    Wands Launcher扩展程序使您可以启动Wands for Oracle和Wands for SAP。 Insightsoftware是基于Microsoft Excel的报表软件的全球提供者。 使用基于Excel的解决方案可以轻松地在需要时以及如何获取,分析,共享和呈现...

    wiserphonelauncher:Dart使用Flutter Framework制作的Android启动器

    使用了哪些组件(列出最重要的组件) device_apps:^ 1.2.0(获取已安装的应用程序信息) intl :(以正确的格式显示时间) url_launcher:访问Internet站点以获取RSS xml:从RSS解析XML使用哪种特殊字体NHK字体...

    SakuraFrpLauncher:SakuraFrp Windows启动器

    请访问获取更多信息 系统需求 一般使用: Windows Vista SP2及以上 安装 远程管理功能: Windows 7及以上 使用指南 请参 贡献 与错误报告或功能请求有关的问题受到欢迎,PR目前可能无法合并。

Global site tag (gtag.js) - Google Analytics