屏幕上长按~~~出现一个Item~~有folder选项
点击进入~~2个选项
1新建文件夹
2蓝牙
公司产品没有蓝牙功能所以要求取消2个选项
查看Luncher2
里面的AddAdapter.java类
加入到一个list中,创建menu中ADD的功能:
1
mItems.add(
new
ListItem(res, R.string.group_shortcuts,
2
R.drawable.ic_launcher_shortcut, ITEM_SHORTCUT));
3
4
5
6
mItems.add(
new
ListItem(res, R.string.group_widgets,
7
R.drawable.ic_launcher_appwidget, ITEM_APPWIDGET));
8
9
mItems.add(
new
ListItem(res, R.string.group_live_folders,
10
R.drawable.ic_launcher_folder, ITEM_LIVE_FOLDER));
11
12
mItems.add(
new
ListItem(res, R.string.group_wallpapers,
13
R.drawable.ic_launcher_wallpaper, ITEM_WALLPAPER));
曾经妄想再次添加未果---就没再去看(有时间再说吧)
在 public View getView方法里得到添加的list显示在桌面
然后向下继续找到Launcher.java里的
public void onClick(DialogInterface dialog, int which) 方法看到了监听item事件
用case判断(终于找到了)
1
case
AddAdapter.ITEM_LIVE_FOLDER: {
2
3
//
Insert extra item to handle inserting folder
4
Bundle bundle
=
new
Bundle();
5
6
7
8
ArrayList
<
String
>
shortcutNames
=
new
ArrayList
<
String
>
();
9
//
添加--新建文件夹(文字)
10
shortcutNames.add(res.getString(R.string.group_folder));
11
bundle.putStringArrayList(Intent.EXTRA_SHORTCUT_NAME, shortcutNames);
12
//
添加--图片
13
ArrayList
<
ShortcutIconResource
>
shortcutIcons
=
14
new
ArrayList
<
ShortcutIconResource
>
();
15
shortcutIcons.add(ShortcutIconResource.fromContext(Launcher.
this
,
16
R.drawable.ic_launcher_folder));
17
bundle.putParcelableArrayList(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, shortcutIcons);
18
19
//
获得所有的Activity?
20
Intent pickIntent
=
new
Intent(Intent.ACTION_PICK_ACTIVITY);
21
22
//
添加额外的Intent-KEY,值--
23
pickIntent.putExtra(Intent.EXTRA_INTENT,
24
new
Intent(LiveFolders.ACTION_CREATE_LIVE_FOLDER));
25
//
额外的Title,
26
pickIntent.putExtra(Intent.EXTRA_TITLE,
27
getText(R.string.title_select_live_folder));
28
pickIntent.putExtras(bundle);
29
30
//
startActivityForResult(pickIntent, REQUEST_PICK_LIVE_FOLDER);
31
32
break
;
33
}
上面的东西无论怎么更改都和要求的不一样
就是不能简单的只去掉蓝牙而别的不显示
OK先完成要求在研究~~试试是否可以跳开直接在上一步的时候点击文件夹直接在桌面添加文件夹
省掉一步~~只要找到添加文件夹的方法扔到这里可能就行(逻辑可以)
集体实现向下寻找在上面最后一句的时候REQUEST_PICK_LIVE_FOLDER直接在本类中搜索哪里用过
protected void onActivityResult(int requestCode, int resultCode, Intent data) 这个方法里用过
case REQUEST_PICK_LIVE_FOLDER:
addLiveFolder(data);
调用了addLiveFolder(data);方法
进去看看
1
void
addLiveFolder(Intent intent) {
2
//
Handle case where user selected "Folder"
3
Log.d(
"
--------------------------------
"
,
"
REQUEST_PICK_LIVE_FOLDER3333333333333333
"
);
4
String folderName
=
getResources().getString(R.string.group_folder);
5
String shortcutName
=
intent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME);
6
if
(folderName
!=
null
&&
folderName.equals(shortcutName)) {
7
addFolder();
8
}
else
{
9
startActivityForResult(intent, REQUEST_CREATE_LIVE_FOLDER);
10
}
11
}
判断里面有addFolder()
我靠看名字就知道必须是了~~
二话不说直接使用
简单至极--》 public void onClick(DialogInterface dialog, int which) {
里面的 case AddAdapter.ITEM_APPWIDGET: {
里的所有东西注释然后加上addFolder()
测试---》成功哈哈————有时间再仔细看吧
还有活呢
上面的方式不行~~~最后终于知道怎么回事了~~
在out\target\product\sdkDemo\system\app下有Bluetooth.APK
其实只要将这个删除了就解决问题
但是现在是为什么~~我将源码里所有关于Bluetooth代码的东西全部删除~~
但是这样再编译后还是会出现这个问题~~~纠结
仔细琢磨下多log下看看~~可能有点思路但是不一定对
当机器第一次启动的时候
>>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
LauncherProvider.onCreate()
这个类是对数据库进行操作(看到有创建数,读取,添加)
向下看是LauncherModel.onCreate()
这个类是对上面创建的数据库进行操作获取数据
FolderInfo getFolderById(Context context, HashMap<Long,FolderInfo> folderList, long id) {
通过id获得文件
里面有添加和删除
接下来 AllAppsList这个类是获取所有的应用并可进行添加和删除
下面是重头~~
Launcher他本身是继承Activity的
加载桌面项
后面的Workspace是应该加载在Launcher上的