android 获取lanucher 列表

引用:http://www.iteye.com/topic/696187

获取Launcher 启动列表

 

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

 

 

 

 

[代码 步骤]

 

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

 

Java代码  收藏代码
  1. public class LauncherItem {  
  2.         Drawable icon;  
  3.         String name;  
  4.         ComponentName component;  
  5.           
  6.         LauncherItem(Drawable d, String s,ComponentName cn){  
  7.             icon = d;  
  8.             name = s;  
  9.             component = cn;  
  10.         }  
  11.     };  

 

 

 

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

 

Java代码  收藏代码
  1. public void addLauncher(){  
  2.         lvalue = new ArrayList<LauncherItem>();  
  3.           
  4.         pkgMgt = this.getPackageManager();  
  5.           
  6.         //to query all launcher & load into List<>  
  7.         Intent it = new Intent(Intent.ACTION_MAIN);  
  8.         it.addCategory(Intent.CATEGORY_LAUNCHER);   
  9.           
  10.         List<ResolveInfo> ra =pkgMgt.queryIntentActivities(it,0);  
  11.           
  12.         for(int i=0;i<ra.size();i++){  
  13.             ActivityInfo ai = ra.get(i).activityInfo;  
  14.               
  15.             //String ainfo = ai.toString();  
  16.             Drawable icon = ai.loadIcon(pkgMgt);  
  17.             String label = ai.loadLabel(pkgMgt).toString();  
  18.             ComponentName c = new ComponentName(ai.applicationInfo.packageName,ai.name);  
  19.               
  20.               
  21.             LauncherItem item = new LauncherItem(icon,label,c);  
  22.               
  23.             lvalue.add(item);  
  24.         }  
  25.           
  26.     }  

 

 

 

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

 

Java代码  收藏代码
  1. public class LauncherAdapter extends BaseAdapter {  
  2.         Activity activity;  
  3.           
  4.         public LauncherAdapter(Activity a){  
  5.             activity = a;  
  6.         }  
  7.           
  8.         @Override  
  9.         public int getCount() {  
  10.             // TODO Auto-generated method stub  
  11.             return lvalue.size();  
  12.         }  
  13.   
  14.         @Override  
  15.         public Object getItem(int arg0) {  
  16.             // TODO Auto-generated method stub  
  17.             return arg0;  
  18.         }  
  19.   
  20.         @Override  
  21.         public long getItemId(int position) {  
  22.             // TODO Auto-generated method stub  
  23.             return position;  
  24.         }  
  25.   
  26.         @Override  
  27.         public View getView(int position, View convertView, ViewGroup parent) {  
  28.             // TODO Auto-generated method stub  
  29.             return composeItem(position);  
  30.         }  
  31.           
  32.         public View composeItem(int position){  
  33.             LinearLayout layout = new LinearLayout(activity);  
  34.             layout.setOrientation(LinearLayout.HORIZONTAL);  
  35.               
  36.             ImageView iv = new ImageView(activity);  
  37.             iv.setImageDrawable(lvalue.get(position).icon);  
  38.             layout.addView(iv);  
  39.               
  40.             TextView tv = new TextView(activity);  
  41.             tv.setText(lvalue.get(position).name);  
  42.             tv.setPadding(10500);  
  43.             layout.addView(tv);  
  44.               
  45.             return layout;  
  46.         }  
  47.           
  48.           
  49.           
  50.     }  

 

 

4. 启动某个item 当单击时

 

Java代码  收藏代码
  1. adapter = new LauncherAdapter(this);  
  2.         lv.setAdapter(adapter);  
  3.           
  4.         lv.setOnItemClickListener(new OnItemClickListener(){  
  5.   
  6.             @Override  
  7.             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
  8.                     long arg3) {  
  9.                 // TODO Auto-generated method stub  
  10.                 Intent intent =new Intent(Intent.ACTION_VIEW);    
  11.                 intent.setComponent(lvalue.get(arg2).component);  
  12.                 startActivity(intent);  
  13.             }  
  14.               
  15.         });  

  

 

 

5.  emulator 结果结果

 

- 列出所有application

 

 

 

- 单击Alarm Clock 的情形:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对int变量赋值的操作是原子的吗?

对于例子如下&#xff1a; int count 0; count; // 是原子操作吗? count; 是原子操作吗? 先说答案&#xff1a; 1、在单处理器下&#xff0c;如果将 count; 语句 翻译为单指令时&#xff0c;是原子操作。 不过现在处理器都会对语句进行优化。 2、在多处理器下&#xf…

企业面试中关于MYSQL重点的28道面试题解答

问题1&#xff1a;char、varchar的区别是什么&#xff1f; varchar是变长而char的长度是固定的。如果你的内容是固定大小的&#xff0c;你会得到更好的性能。 问题2: TRUNCATE和DELETE的区别是什么&#xff1f; DELETE命令从一个表中删除某一行&#xff0c;或多行&#xff0c;T…

普通的int main(){}没有写return 0;会怎么样?

结论可能大家看上面的图就知道了&#xff0c;没有加return 0;编译器会自动添加一个。那怎么证明呢&#xff1f; 可以查看相应的汇编代码&#xff0c;查看汇编代码推荐使用godbolt.org网站&#xff0c;相当方便。 如上图&#xff0c;输入C代码&#xff0c;在右半部分会显示编译…

python 内置方法 BUILT-IN METHODS

setattr getattr hasattr 1. abs() returns absolute value of a number 返回绝对值 integer -20 print(Absolute value of -20 is:, abs(integer)) 2. all() returns true when all elements in iterable is true 都为true则为true 3. any() Checks if any Element of an Ite…

并发与并行的区别

学习多线程的时候会遇到一个名词&#xff1a;并发。这是属于操作系统中的词汇&#xff0c;需要了解并发和并行的区别&#xff0c;从网上搜集了几种说法帮助理解。 一&#xff1a; 并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的…

Oracle PL/SQL块 多表查询(emp员工表、dept部门表、salgrade工资等级表)

范例: 查询每个员工的编号&#xff0c;姓名&#xff0c;职位&#xff0c;工资&#xff0c;工资等级&#xff0c;部门名称●确定要使用的数据表|- emp表&#xff1a;员工的编号、姓名、职位、工资|- salgrade表&#xff1a;工资等级|- dept表&#xff1a;部门名称●确定已知的关…

多线程的互斥锁应用RAII机制

什么是RAII机制 RAII是Resource Acquisition Is Initialization&#xff08;翻译成 “资源获取即初始化”&#xff09;的简称&#xff0c;是C语言的一种管理资源、避免资源泄漏的惯用法&#xff0c;该方法依赖构造函数资和析构函数的执行机制。 RAII的做法是使用一个类对象&a…

asp.net 浏览服务器文件

http://www.csharpwin.com/dotnetspace/12018r482.shtml 前台文件file.aspx <% Page Language"C#"AutoEventWireup"true"CodeFile"file.aspx.cs"Inherits"file"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi…

pynput模块—键盘鼠标操作和监听

pynput.mouse&#xff1a;包含控制和监控鼠标或者触摸板的类。 pynput.keyboard&#xff1a;包含控制和监控键盘的类。 上面提到的子包都已被引入到pynput库中。要使用上面的子包&#xff0c;从pynput中引入即可。 下面有详细的示例文档。 控制鼠标 使用pynput.mouse控制鼠标&a…

Windows 恢复环境(Windows RE模式)

Windows 恢复环境 (Windows RE) 是一个能修复无法启动操作系统的常见问题的恢复环境。Windows 预安装环境 (Windows PE) 是具有有限服务的最小 Win32 操作系统。Windows RE 建立在 Windows 预安装环境 (Windows PE) 的基础上&#xff0c;并且可以用附加的驱动程序、语言、Windo…

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

最近工作中遇到了开源许可证的问题&#xff0c;需要测试基于开源软件开发的本公司产品满足哪些开源协议&#xff0c;网上找了一些关于这方面的解答&#xff0c;在此备份下&#xff1a; 首先借用有心人士的一张相当直观清晰的图来划分各种协议&#xff1a;开源许可证GPL、BSD、M…

什么是 mmap

1. mmap 基础概念 mmap 即 memory map&#xff0c;也就是内存映射。 mmap 是一种内存映射文件的方法&#xff0c;即将一个文件或者其它对象映射到进程的地址空间&#xff0c;实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后&#xff…

win10 + 独显 + Anaconda3 + tensorflow_gpu1.13 安装教程(跑bert模型)

这里面有很多坑&#xff0c;最大的坑是发现各方面都装好了结果报错 Loaded runtime CuDNN library: 7.3.1 but source was compiled with: 7.4.1&#xff0c;这是由于最新的tensorflow1.13需要用 Cudnn7.4.1编译。这个问题&#xff0c;StackOverflow上有人问到&#xff0c;但是…

Oracle client 安装、配置

一、安装 链接: https://pan.baidu.com/s/1Yph6hiNkCJsApAzu_Vx2ew 提取码: r9ye 二、配置 1、控制面板\所有控制面板项\管理工具\数据源(ODBC) 注&#xff1a;odbc 分 64 位和 32 位的2、测试 ODBC 连接 Oracle 数据库点击 ODBC&#xff0c;在“用户 DSN”页签下点击添加按钮…

ADO.NET- 基础总结及实例

1、ADO.NET基础介绍 &#xff08;1、程序要和数据库交互要通过ADO.NET进行&#xff0c;通过ADO.NET就能在程序中执行SQL了。ADO.Net中提供了对各种不同数据库的统一操作接口。 (2、直接在项目中内嵌mdf文件的方式使用SQL Server数据库&#xff08;基于服务的数据库&#xff09;…

获取指定日期所属年份的第一天日期或最后一天日期

写了2个自定义函数&#xff0c;获取指定日期所在年份的第一天日期或最后一天的日期&#xff1a; SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-09 -- Update date: 2019-05-09 -- Description: 获取指定日期所属年…

高效管理ASP.NET的JavaScript库

简介 对于ASP.NET开发人员来说,管理项目中的JavaScript都很随意&#xff1a; 我想这很大程度上可能是因为网上没有如何妥善处理ASP.NET中JavaScript的可靠信息。此文的目的就是提供一种最佳方案&#xff0c;用于管理ASP.NET中的JavaScript。该方案将能解决以下问题&#xff1a;…

【面试】c++单例模式

1. 单例模式 #include <iostream> using namespace std;class CSingleton { private:CSingleton() {} // 构造是私有的static CSingleton *m_pInstance; public:static CSingleton *GetInstance(){if (m_pInstance NULL) {m_pInstance n…

AIX HACMP集群切换测试实际案例解析

为验证AIX HACMP集群系统的稳定性及保障其上应用的连续性和可靠性&#xff0c;决定周五晚进行集群切换测试。下面是当次过程的文档总结和记录&#xff0c;方便以后参考并备案。系统环境&#xff1a;AIX 5.3数据库&#xff1a; DB2 V8.2存储&#xff1a; IBM DS4700,为两节点配置…

jvm_2

业务线程一直在等待&#xff0c;或者一直在运行&#xff0c;如果不是自己想要的状态&#xff0c;就表明有问题 死锁问题检测 上面程序之所以会死锁&#xff0c;因为下图所示&#xff0c;在-128~127范围内&#xff0c;Integer valueOf后对相同的int值会返回相同的对象&#xff0…