最近项目中需要动态获得activity,仔细研究了下,发现这样可以获得:
Launcher应用->Workspace.java->updateShortcuts方法->
if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION &&
Intent.ACTION_MAIN.equals(intent.getAction()) && name != null) {
...................................
}后面,加入如下代码
else if(info.itemType == LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT &&
Intent.ACTION_MAIN.equals(intent.getAction()) && name != null){
String[] str=name.flattenToShortString().split("/");
Log.d("ResolveInfo","str[0]="+str[0]+",str[1]="+str[1]);
String str1=str[0];
String str2=str[0]+str[1];
ComponentName com= new ComponentName(str1,str2);
Intent ii=new Intent();
ii.setComponent(com);
List<ResolveInfo> list=pm.queryIntentActivities(ii, 0);
if(list.size()>0){
for(ResolveInfo r:list){
String newtitle=r.loadLabel(pm).toString();
Log.d("ResolveInfo","获得的activity标题="+newtitle);
info.setTitle(newtitle);
}
}
}