代码之家  ›  专栏  ›  技术社区  ›  Waza_Be

获取已安装应用的列表,很简单。但是如何发射一个呢?

  •  2
  • Waza_Be  · 技术社区  · 15 年前

    我的第一个应用程序将只是一种发射器,我想改进。 此启动器将启动用户已安装的自定义主页。

    因此,我的第一个目标是获得所有“主”应用程序列表:这非常简单,代码就在那里:

    Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
    pm=getBaseContext().getPackageManager();
    mainIntent.addCategory(Intent.CATEGORY_HOME); 
    List<ResolveInfo> list = pm.queryIntentActivities(mainIntent,0);
    

    现在我想在listview中这样做。我的第一个问题是得到图标:我失败了,但这不是我的主要问题(如果你能帮助我,我会很高兴)

    我成功地创建了一个包含已安装主页的所有名称的列表视图:

    for(...){
        map = new HashMap<String, String>(); 
        map.put("titre",info.activityInfo.applicationInfo.loadLabel( pm ).toString());
        map.put("pck",info.activityInfo.packageName);
        listItem.add(map);
    }
        SimpleAdapter homeAdapter = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.row,
        new String[] {"img", "titre"}, new int[] {R.id.img, R.id.titre});
        myListView.setAdapter(homeAdapter);
    

    现在,当我点击一个主页时,我想启动主页,所以我所做的是:

    protected void onListItemClick(ListView l, View v, int position, long id) {
     super.onListItemClick(l, v, position, id);
    
     HashMap<String, String> map = (HashMap<String, String>) myListView.getItemAtPosition(position);
     Intent myIntent = new Intent();
     myIntent.setPackage(map.get("pck"));
     startActivity(myIntent);  
    
    }
    

    所以,有一个盒子出现了,问我:

    完成操作使用: LauncherPro-或Sense-或ADW 袋鼠画廊

    我想我已经接近我想做的了,但是,我想我错过了什么,是吗?

    1 回复  |  直到 9 年前
        1
  •  4
  •   CommonsWare    15 年前

    Here is a sample project 实现启动程序样式的活动。