android 获取lanucher 列表

简介: 引用:http://www.iteye.com/topic/696187 获取Launcher 启动列表   即 列出所有Launcher程序 通过PackageManager 来获取         [代码 步骤]   1.

引用: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 的情形:

 

 

相关文章
|
8月前
|
XML Java Android开发
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
146 1
|
8月前
|
XML Java Android开发
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
227 0
|
17天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
7月前
|
存储 数据库 Android开发
安卓Jetpack Compose+Kotlin,支持从本地添加音频文件到播放列表,支持删除,使用ExoPlayer播放音乐
为了在UI界面添加用于添加和删除本地音乐文件的按钮,以及相关的播放功能,你需要实现以下几个步骤: 1. **集成用户选择本地音乐**:允许用户从设备中选择音乐文件。 2. **创建UI按钮**:在界面中创建添加和删除按钮。 3. **数据库功能**:使用Room数据库来存储音频文件信息。 4. **更新ViewModel**:处理添加、删除和播放音频文件的逻辑。 5. **UI实现**:在UI层支持添加、删除音乐以及播放功能。
|
5月前
|
Android开发 开发者 UED
Android项目架构设计问题之加载数据到列表如何解决
Android项目架构设计问题之加载数据到列表如何解决
44 0
|
8月前
|
XML Java Android开发
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
778 1
|
7月前
|
存储 API Android开发
29. 【Android教程】折叠列表 ExpandableListView
29. 【Android教程】折叠列表 ExpandableListView
595 2
|
7月前
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
266 2
|
7月前
|
安全 Java API
Android获取Wi-Fi网络列表
【6月更文挑战第21天】
121 0
|
8月前
|
Android开发
Android获取蓝牙设备列表的方法
Android获取蓝牙设备列表的方法
592 5

热门文章

最新文章