Getting list of installed app's, easy. But how

2019-05-21 03:50发布

My first application will just be a kind of launcher that I would like to improve. This launcher will launch a custom Home that the user has installed.

That's like the application "Home Switcher, but I would like to do that myself.

So my first goal is to get all "Home" applications list: that's really easy and the code is there:

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

Now I would like to do that in a listview. My first problem is to get the Icon: I failed, but that's not my main problem ( if you can help me I would be happy)

I succeed to make a listview with all the names of the installed Home:

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

And now when I click on a home, I would like to launch the Home, so what I did is:

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

}

So, there is a box that that appear and ask me:

Complete action using: LauncherPro - or Sense - or ADW Wallaper Gallery

I think I am close to what I would like to do, but, I think I'm missing something, am I?

1条回答
唯我独甜
2楼-- · 2019-05-21 04:26

Here is a sample project implementing a launcher-style activity.

查看更多
登录 后发表回答