Activityメソッドの取得

1656 ワード

最近のプロジェクトでは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);
                            	}
                            }
                    }