Android获取LAUNCHER,Android 获取Launcher 启动列表

先留着有时间再看

获取Launcher 启动列表

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

[代码 步骤]

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

Java代码

1  public class LauncherItem {

2

3   Drawable icon;

4

5   String name;

6

7   ComponentName component;

8

9   LauncherItem(Drawable d, String s,ComponentName cn){

10

11   icon = d;

12

13   name = s;

14

15   component = cn;

16

17   }

18

19   };

20

21   public class LauncherItem {

22

23   Drawable icon;

24

25   String name;

26

27   ComponentName component;

28

29   LauncherItem(Drawable d, String s,ComponentName cn){

30

31   icon = d;

32

33   name = s;

34

35   component = cn;

36

37   }

38

39   };

40

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

Java代码

public void addLauncher(){

lvalue = new ArrayList();

pkgMgt = this.getPackageManager();

//to query all launcher & load into List<>

Intent it = new Intent(Intent.ACTION_MAIN);

it.addCategory(Intent.CATEGORY_LAUNCHER);

List ra =pkgMgt.queryIntentActivities(it,0);

for(int i=0;i< p>

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);

}

}

public void addLauncher(){

lvalue = new ArrayList();

pkgMgt = this.getPackageManager();

//to query all launcher & load into List<>

Intent it = new Intent(Intent.ACTION_MAIN);

it.addCategory(Intent.CATEGORY_LAUNCHER);

List ra =pkgMgt.queryIntentActivities(it,0);

for(int i=0;i< p>

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显示样式

Java代码

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;

}

}

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 当单击时

Java代码

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);

}

});

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

43f14e629132488990994ed19055be61.png

- 单击Alarm Clock 的情形:

5652bfec0e3b3c448663cc34097b8051.png

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

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

相关文章

数据库高可用架构 转载

数据库高可用架构对于我们这些应用端开发的人来说是一个比较陌生的领域&#xff0c;是在具体的数据库产品之上搭建的环境&#xff0c;需要像DBA这样对数据库产品有足够的了解才能有所涉及&#xff0c;虽然不能深入其中&#xff0c;但可以通过一些经典的高可用架构学习其中的思想…

将Java 8日期时间API与JSF和Java EE 7结合使用

如果您将Java 8与Java EE 7一起使用&#xff0c;则在尝试利用某些Java 8新功能时可能会遇到一些怪癖。 一个这样的怪癖是&#xff0c;默认情况下&#xff0c;新的Date-Time API不适用于许多Java EE 7 API&#xff0c;因为它们是为与java.util.Date和/或较早的Date API一起使用而…

解决 There are no resources that can be added or removed from the server

网上下载了一个项目,在eclipse中部署时,加载项目到tomcat中项目名称无法显示,报出There are no resources that can be added or removed from the server 这个是因为下载下来的项目没有eclipse的相关配置文件,eclipse不知道这是一个什么项目。 解决方法: 1、进入confi…

推荐几款爬虫软件与无需编程的数据分析工具

爬虫软件: 八爪鱼,火车头,前嗅,熊猫采集器,集搜客等 相对来说八爪鱼配置还是比较简单的,不过免费版的爬起数据来那叫一个慢。。。 不过也可能是我是个急性子。。。1分钟爬10条,很心塞啊。火车头就尴尬,不是高 配版。。基本上啥也干不了,不过好的一点是他们的论坛还是…

登录时本地保存账号密码及关闭ARC的方法

对于登录时保存用户名和密码&#xff0c;苹果官方使用的是KeychainItemWrapper&#xff0c;但使用时有些不便&#xff0c;如在引入KeychainItemWrapper的类中都要关闭arc&#xff0c;不能自定义key&#xff0c;必须使用该类提供的kSecValueData、kSecAttrAccount等。所以推荐使…

linux系统的4个部分,以下是Linux文件系统的4个相关的结构定义中的一部分: Struct i..._考试资料网...

问答题为了实现文件的共享&#xff0c;办法之一是把文件目录分成基本文件目录和符号文件目录。现设目录文件存放在磁盘上&#xff0c;盘块长度为1024B&#xff0c;每个文件说明占48B。其中&#xff0c;文件符号名占6B&#xff0c;内部标识符ID占2B&#xff0c;请回答下列问题&a…

收银扫描设备统计

前端时间开发一个会员管理系统&#xff0c;里面涉及一些支付的问题&#xff0c;就查找一些配套的硬件设备。记录点滴成长 2000元的配套设备一般就可以满足系统应用啦。

推断:Facebook的新Java静态分析工具

如何使用Facebook的Infer改善Java开发工作流程&#xff1f; 如果您与技术话题保持紧密联系&#xff08;如果您正在阅读此博客&#xff0c;我想您应该这样做&#xff09;&#xff0c;那么您可能听说过Facebook 刚刚向公众发布的新工具&#xff1a;推断。 由于它来自Facebook&am…

html 转换xslt,XSLT xsl:template 元素

元素元素用于构建模板。match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例&#xff0c;match"/" 定义整个文档)。好了&#xff0c;让我们看一下上一节中的 XSL 文件的简化版本&#xff1a;xmlns:xsl&qu…

开发一个大数据网站做的铺垫

知名大数据分析网站推荐8个 用到的大数据5个关键技术 人工智能6大关键技术

[C/C++]C++标准

本文若如特别说明都引于ISO/IEC 14882:2011 7、声明(Declarations) 声明序列(declaration-seq): 声明(declaration) 声明序列(declaration-seq) 声明(declaration)声明(declaration): block-declaration function-definition template-declaration explicit-…

js html实体编码转换,字符串js编码转换成实体html编码的方法(防范XSS攻击)

js代码在html页面中转换成实体html编码的方法一&#xff1a;js代码转换成实体htmljs代码转换成实体html--红function test(){alert(测试红)}test();js代码转换成实体html--绿alert(测试绿)直接在html页面写法是这样写即可&#xff1a;方法一&#xff1a;<script>alert(&q…

程序员必备工具

声明&#xff1a;转自CSDN博主「不脱发的程序猿」的原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/m0_38106923/article/details/100130354 目录 1、搜索引擎 2、PPT 3、图片操作…

hdu 4292 Food 最大流

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4292 You, a part-time dining service worker in your college’s dining hall, are now confused with a new problem: serve as many people as possible.  The issue comes up as people in your college…

jaxb 生成java类_重用生成的JAXB类

jaxb 生成java类在本文中&#xff0c;我将演示如何利用XJC扩展来重用以前从XML模式生成的类。 当其他XML架构导入XML架构并且您不想每次都生成相同的类时&#xff0c;这很有用。 导入的架构&#xff08;Product.xsd&#xff09; 以下XML模式代表有关产品的基本信息。 产品是此…

怎样在Ubuntu系统安装可用的QQ

http://jingyan.baidu.com/article/9f63fb91d1f6bbc8400f0e1c.html转载于:https://www.cnblogs.com/Ph-one/p/4330749.html

印象笔记桌面版怎么导出html,服务通知:印象笔记PC端Markdown取消支持HTML标签解析功能...

亲爱的用户&#xff1a;印象笔记电脑端 Markdown 取消了对 HTML 标签解析功能的支持&#xff0c;使用 Windows 6.15.12 Beta 版及 Mac 8.3.2 版的部分用户将受到影响&#xff0c;以下是对本次影响的详细说明。“HTML 标签解析”功能自上线以来就得到部分 Markdown 资深用户的深…

普通 项目打包包含第三方jar包

在工程中包含第三方Jar包时&#xff0c;普通打包方式打出的Jar包无法包含第三方Jar包。 可以使用net.sf.fjep.fatjar_0.0.31.jar插件&#xff0c;将第三方Jar包包含在打出的jar包中&#xff0c; 只要将该插件放到Eclipse的dropins目录&#xff08;如&#xff1a;D:\Program F…

如何优化Hibernate EllementCollection语句

介绍 Hibernate支持三种数据映射类型 &#xff1a; 基本 &#xff08;例如String&#xff0c;int&#xff09;&#xff0c; Embeddable和Entity 。 通常&#xff0c;数据库行映射到Entity &#xff0c;每个数据库列都与一个基本属性关联。 当将多个字段映射组合到一个可重用的组…

《黑马程序员》 流程控制(C语言)

------- <a href"http://www.itheima.com" target"blank">android培训</a>、<a href"http://www.itheima.com" target"blank">java培训</a>、期待与您交流&#xff01; --------- 流程控制主要有 顺序结构…