launcher修改--获取widget信息(图片,文字等)(源码追踪)

在launcher中,长按屏幕,图挂了,我们在代码里面找一下:

首先,找到onLongClick(View v)方法,然后在这个方法中,有如下代码:


然后,继续追踪showAddDialog()方法:
 继续找showDialog,没什么发现,showDialog()方法是该类父类Activity()方法,携带参数DIALOG_CREATE_SHORTCUT,但是它最后是调用的Launcher.java的onCreateDialog(int id)这个方法:
 
 
 在这里,使用了CreateShortcut.createDialog()方法,在源代码的2708行:
 
 
 
 
 
 
 我们可以在CreateShortcut类中onclick()方法里面找到一下代码(这里是2.2的代码):
 
 
 
 
 
 
 这里是2.3的代码:
 在这里又是如何实现的呢?我么看到了startActivityForResult()方法,它实际上是运行了package/apps/Settings/src/com/android/settings/AppWidgetPickActivity.java
 
我们来看下代码中是如何获取widget信息的:
 
 
 
 
 
 
 
 
和方法:
 
 
 
 
 
 
 
 
 下面是我自己写的获取widget的图标:
 
 
 
 
 
 
 
 
 
 
 
 
 在这段代码里,能获取widget的列表。
 
不知道是何种原因,使用以下代码:
 却不能获取widget的图标,而是别的图,望清楚原因者告知。 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(Launcher)