著录项信息
专利名称 | 一种在Android的菜单中添加菜单项的方法及设备 |
申请号 | CN201010176312.X | 申请日期 | 2010-05-14 |
法律状态 | 暂无 | 申报国家 | 暂无 |
公开/公告日 | 2010-09-15 | 公开/公告号 | CN101833467A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5;;;H;0;4;M;1;/;7;2;5查看分类表>
|
申请人 | 华为终端有限公司 | 申请人地址 | 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为终端有限公司 | 当前权利人 | 华为终端有限公司 |
发明人 | 赵京 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公开了一种在Android的菜单中添加菜单项的方法及设备,属于计算机领域。所述方法包括接收打开本地菜单的请求,所述请求中携带菜单ID,创建所述菜单ID对应的本地菜单;根据所述菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;将所述第三方应用的菜单项添加到所述本地菜单中,显示添加了所述第三方应用的菜单项的本地菜单。所述设备包括第一创建模块、获取模块和添加模块。本发明能够在手机的本地菜单中添加第三方应用的菜单项且不需要对Android平台的代码进行修改。
1.一种在Android的菜单中添加菜单项的方法,其特征在于,所述方法包括:
接收打开本地菜单的请求,所述请求中携带菜单ID,创建所述菜单ID对应的本地菜单;
根据所述菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;
将所述第三方应用的菜单项添加到所述本地菜单中;
显示添加了所述第三方应用的菜单项的本地菜单;
其中,所述第三方应用的菜单项至少包括菜单项名称和标识信息,相应地,所述将所述第三方应用的菜单项添加到所述本地菜单中,具体包括:
在所述本地菜单的菜单列表中,将所述菜单项名称填充在所述菜单列表中未被占用的表格中;
将所述菜单项的菜单项名称与所述标识信息进行绑定,其中,所述标识信息用于标识功能或二级菜单;
如果所述第三方应用的菜单项还包括图标ID,所述将所述菜单项名称填充在所述菜单列表中未被占用的表格中之前,还包括:
在所述第三方应用的文件集合中查找所述图标ID对应的图标;
相应地,所述将所述菜单项名称填充在所述菜单列表中未被占用的表格中,具体包括:
将所述菜单项名称和所述图标填充在所述菜单列表中未被占用的表格中。
2.如权利要求1所述的方法,其特征在于,所述第三方应用的菜单项和本地菜单ID的对应关系通过以下方式获得:
从所述第三方应用的文件集合中查找配置文件,通过对所述配置文件进行解析,获取所述第三方应用的菜单项和所述菜单项所属本地菜单ID,并将所述第三方应用的菜单项和所述菜单项所属本地菜单ID存储在未被占用的空间内。
3.如权利要求2所述的方法,其特征在于,所述从所述第三方应用的文件集合中查找配置文件之后,还包括:
根据已定义的本地菜单的结构,对所述配置文件进行验证。
4.如权利要求1所述的方法,其特征在于,所述显示添加了所述第三方应用的菜单项的本地菜单之后,还包括:
当用户在所述添加了所述第三方应用的菜单项的本地菜单中选择菜单项时,获取绑定在所述选择的菜单项中的菜单项名称上的标识信息;
如果所述标识信息中包括功能ID,则根据所述功能ID获取对应的功能;
如果所述标识信息中包括二级菜单ID,则创建所述二级菜单ID对应的二级菜单。
5.如权利要求4所述的方法,其特征在于,所述创建所述二级菜单ID对应的二级菜单,具体包括:
创建所述二级菜单ID对应的本地二级菜单;
根据所述二级菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;
将所述第三方应用的菜单项添加到所述本地二级菜单中;
显示添加所述第三方应用的菜单项的本地二级菜单。
6.一种在Android的菜单中添加菜单项的设备,其特征在于,所述设备包括:
第一创建模块,用于接收打开本地菜单的请求,所述请求中携带菜单ID,创建所述菜单ID对应的本地菜单;
获取模块,用于根据所述菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;
添加模块,用于将所述第三方应用的菜单项添加到所述本地菜单中,显示添加了所述第三方应用的菜单项的本地菜单;
其中,所述第三方应用的菜单项至少包括菜单项名称和标识信息,相应地,所述添加模块具体包括:
填充单元,用于在所述本地菜单的菜单列表中,将所述菜单项名称填充在所述菜单列表中未被占用的表格中;
绑定单元,用于将所述菜单项的菜单项名称与所述标识信息进行绑定,其中,所述标识信息用于标识功能或二级菜单;
第一显示单元,用于显示添加了所述第三方应用的菜单项的本地菜单;
如果所述第三方应用的菜单项还包括图标ID,所述添加模块还包括:
查找单元,用于在所述第三方应用的文件集合中查找所述图标ID对应的图标;
相应地,
所述填充单元,具体用于将所述菜单项名称和所述图标填充在所述菜单列表中未被占用的表格中。
7.如权利要求6所述的设备,其特征在于,所述设备还包括:
存储模块,用于从所述第三方应用的文件集合中查找配置文件,通过对所述配置文件进行解析,获取所述第三方应用的菜单项和所述菜单项所属本地菜单ID,并将所述第三方应用的菜单项和所述菜单项所属本地菜单ID存储在未被占用的空间内。
8.如权利要求7所述的设备,其特征在于,所述设备还包括:
验证模块,用于当所述存储模块查找到所述配置文件后,根据已定义的本地菜单的结构,对所述配置文件进行验证。
9.如权利要求6所述的设备,其特征在于,所述设备还包括:
第一获取模块,用于当用户在所述添加了所述第三方应用的菜单项的本地菜单中选择菜单项时,获取绑定在所述选择的菜单项中的菜单项名称上的标识信息;
第二获取模块,用于如果所述标识信息中包括功能ID,则根据所述功能ID获取对应的功能;
第二创建模块,用于如果所述标识信息中包括二级菜单ID,则创建所述二级菜单ID对应的二级菜单。
10.如权利要求9所述的设备,其特征在于,所述第二创建模块具体包括:
创建单元,用于创建所述二级菜单ID对应的本地二级菜单;
获取单元,用于根据所述二级菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;
添加单元,用于将所述第三方应用的菜单项添加到所述本地二级菜单中;
第二显示单元,用于显示添加所述第三方应用的菜单项的本地二级菜单。
一种在Android的菜单中添加菜单项的方法及设备\n技术领域\n[0001] 本发明涉及计算机领域,特别涉及一种在Android的菜单中添加菜单项的方法及设备。\n背景技术\n[0002] Android是基于Linux内核的软件平台和操作系统,Android中包括多个功能以及多个本地菜单,每个本地菜单中包括一个或多个菜单项,每个菜单项对应一个功能,如此可以从本地菜单中启动每个功能。其中,Android可以作为手机操作系统,手机制造商在Android平台上添加不同的第三方应用,从而生产出功能不同的手机。其中,每个第三方应用包括一个或多个功能,且每个功能对应一个菜单项,将第三方应用包括的每个功能对应的一个菜单项添加到本地菜单中,如此,也可以从本地菜单中启动第三方应用包括的功能。\n[0003] 其中,在Android平台内有一个用于存储菜单项的数据库,手机制造商通过修改Android平台中的代码,将第三方应用包括的菜单项添加到该数据库中,当创建本地菜单时,从该数据库中获取菜单项并组成本地菜单,如此,实现将第三方应用包括的菜单项添加到本地菜单中。然后,手机制造商再将Android平台和第三方应用烧写到手机的存储器中。\n[0004] 发明人发现现有技术至少存在以下问题:\n[0005] 手机制造商在向本地菜单添加某个第三方应用的菜单项时,需要对Android的代码进行修改,另外,手机出厂后,由于烧写到手机存储器中的数据不可以再被修改,所以当用户下载某个第三方应用到手机中时,用户无法将该第三方应用中的菜单项添加到手机中的本地菜单中。\n发明内容\n[0006] 为了能够在手机的本地菜单中添加第三方应用的菜单项且不需要对Android平台的代码进行修改,本发明提供了一种在Android的菜单中添加菜单项的方法及设备。所述技术方案如下:\n[0007] 一种在Android的菜单中添加菜单项的方法,所述方法包括:\n[0008] 接收打开本地菜单的请求,所述请求中携带菜单ID,创建所述菜单ID对应的本地菜单;\n[0009] 根据所述菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;\n[0010] 将所述第三方应用的菜单项添加到所述本地菜单中;\n[0011] 显示添加了所述第三应用的菜单项的本地菜单;\n[0012] 其中,所述第三方应用的菜单项至少包括菜单项名称和标识信息,相应地,所述将所述第三方应用的菜单项添加到所述本地菜单中,具体包括:\n[0013] 在所述本地菜单的菜单列表中,将所述菜单项名称填充在所述菜单列表中未被占用的表格中;\n[0014] 将所述菜单项的菜单项名称与所述标识信息进行绑定,其中,所述标识信息用于标识功能或二级菜单;\n[0015] 如果所述第三方应用的菜单项还包括图标ID,所述将所述菜单项名称填充在所述菜单列表中未被占用的表格中之前,还包括:\n[0016] 在所述第三方应用的文件集合中查找所述图标ID对应的图标;\n[0017] 相应地,所述将所述菜单项名称填充在所述菜单列表中未被占用的表格中,具体包括:\n[0018] 将所述菜单项名称和所述图标填充在所述菜单列表中未被占用的表格中。\n[0019] 一种在Android的菜单中添加菜单项的设备,所述设备包括:\n[0020] 第一创建模块,用于接收打开本地菜单的请求,所述请求中携带菜单ID,创建所述菜单ID对应的本地菜单;\n[0021] 获取模块,用于根据所述菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;\n[0022] 添加模块,用于将所述第三方应用的菜单项添加到所述本地菜单中,显示添加了所述第三方应用的菜单项的本地菜单;\n[0023] 其中,所述第三方应用的菜单项至少包括菜单项名称和标识信息,相应地,所述添加模块具体包括:\n[0024] 填充单元,用于在所述本地菜单的菜单列表中,将所述菜单项名称填充在所述菜单列表中未被占用的表格中;\n[0025] 绑定单元,用于将所述菜单项的菜单项名称与所述标识信息进行绑定,其中,所述标识信息用于标识功能或二级菜单;\n[0026] 第一显示单元,用于显示添加了所述第三方应用的菜单项的本地菜单;\n[0027] 如果所述第三方应用的菜单项还包括图标ID,所述添加模块还包括:\n[0028] 查找单元,用于在所述第三方应用的文件集合中查找所述图标ID对应的图标;\n[0029] 相应地,所述填充单元,具体用于将所述菜单项名称和所述图标填充在所述菜单列表中未被占用的表格中。\n[0030] 当打开本地菜单时,通过从已存储的第三方应用的菜单项和本地菜单ID的对应关系中获取需要添加到该本地菜单的菜单项,直接将获取的菜单项添加到该本地菜单中。\n由于将第三方应用的菜单项直接添加到本地菜单中,因而不需要通过修改Android的代码,即可将第三方应用的菜单项添加到Android平台的数据库中以及实现将第三方应用的菜单项添加到本地菜单中。\n附图说明\n[0031] 图1是本发明实施例1提供的一种在Android的菜单中添加菜单项的方法流程图;\n[0032] 图2是本发明实施例2提供的一种在Android的菜单中添加菜单项的方法流程图;\n[0033] 图3是本发明实施例2提供的第一种本地主菜单的示意图;\n[0034] 图4是本发明实施例2提供的第二种本地主菜单的示意图;\n[0035] 图5是本发明实施例2提供的第一种本地二级菜单的示意图;\n[0036] 图6是本发明实施例2提供的第二种本地二级菜单的示意图;\n[0037] 图7是本发明实施例3提供的一种在Android的菜单中添加菜单项的设备示意图。\n具体实施方式\n[0038] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。\n[0039] 实施例1\n[0040] 如图1所示,本发明实施例提供了一种在Android的菜单中添加菜单项的方法,包括:\n[0041] 步骤101:接收打开本地菜单的请求,该请求中携带菜单ID,创建携带的菜单ID对应的本地菜单;\n[0042] 步骤102:根据携带的菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;\n[0043] 步骤103:将获取的第三方应用的菜单项添加到本地菜单中,显示添加第三方应用的菜单项的本地菜单。\n[0044] 在本发明实施例中,单独存储第三方应用的菜单项和该菜单项所属的本地菜单的ID,当打开本地菜单时,根据已存储的第三方应用的菜单项和本地菜单ID的对应关系获取需要添加到该本地菜单的菜单项,直接将获取的菜单项添加到该本地菜单中。由于将第三方应用的菜单项直接添加到本地菜单中,因而不需要通过修改Android的代码,即可将第三方应用的菜单项添加到Android平台的数据库中以及实现将第三方应用的菜单项添加到本地菜单中。\n[0045] 实施例2\n[0046] 如图2所示,本发明实施例提供了一种在Android的菜单中添加菜单项的方法,包括:\n[0047] 步骤201:当用户在手机中安装某个第三方应用时,从该第三方应用的文件集合中查找配置文件;\n[0048] 其中,用户可以从应用开发商下载某个第三方应用的文件集合并将该第三方应用的文件集合存储在手机的存储器中。该第三方应用可以包括一个或多个功能,每个功能都由对应的API(Application Programming Interface,应用程序编程接口)函数来实现,因此,在该第三方应用的文件集合中存储实现该第三方应用包括的每个功能的API函数。\n[0049] 其中,在该第三方应用的文件集合中必存在一个配置文件,该配置文件以Xml(Extensible Markup Language,可扩展标记语言)文件的形式存在,在该配置文件中至少存在如下信息,包括菜单项和该菜单项所属的本地菜单ID,而菜单项至少包括菜单项名称和标识信息,标识信息至少包括二级菜单的菜单ID或功能ID,另外,标识信息还可以包括应用ID,如果标识信息中包括二级菜单的菜单ID,则标识信息可以唯一的标识一个二级菜单,如果标识信息中包括功能ID,则标识信息可以唯一的标识一个功能。另外,该菜单项还可以包括图标的ID等,相应地,该第三方应用的文件集合中还存在图标。另外,菜单项名称以字符串的形式存在,在配置文件中可以同时包括多个菜单项以及每个菜单项所属本地菜单的ID。其中,第三方应用的开发商事先知道Android平台内的每个本地菜单,如果第三方应用的开发商想将某个第三方应用的菜单项添到某个本地菜单时,则可以直接在该第三方应用的配置文件中定义该第三方应用的菜单项所属的本地菜单ID为该本地菜单的ID。\n[0050] 例如,某个第三方应用为邮件系统,在该邮件系统的文件集合中存在一个配置文件,该配置文件内的信息如表1所示。在表1所示的邮件系统的配置文件中,包括两个菜单项以及每个菜单项所属本地菜单的ID,第一个菜单项中包括的菜单项名称为“邮件”、标识信息包括功能ID为“ID101”和应用ID为“ID10”,以及图标ID为“ID102”;第二个菜单项中包括的菜单项名称为“DirectMessage”、标识信息包括功能ID为“ID103”和应用ID为“ID10”。其中,菜单项中可以不包括图标ID,因此,表1中的最后一行记录中的图标ID为空。\n[0051] 表1\n[0052] \n[0053] 步骤202:通过对查找的配置文件进行解析,从该配置文件中至少获取每个菜单项以及每个菜单项所属的本地菜单的菜单ID等信息,并将获取的信息存储在配置管理器中;\n[0054] 其中,配置管理器存储在手机存储器中的未被占用的空间区域内,配置管理器用于存储第三方应用中的菜单项与该菜单项所属本地菜单的菜单ID之间的对应关系。例如,通过对如表1所示的配置文件进行解析,从表1所示的配置文件中获取两个菜单项以及每个菜单项所属本地菜单ID,并将获取的两个菜单项以及每个菜单项所属本地菜单ID存储在如表2所示的配置管理器中。\n[0055] 表2\n[0056] \n[0057] 其中,手机制造商在生产手机时,通常在手机中设置多个本地应用,每个本地应用包括多个功能,且为每个本地应用设置对应的一个本地主菜单,在本地主菜单中包括一个或多个菜单项,每个菜单项中的标识信息至少包括一个功能ID或一个本地二级菜单的菜单ID;本地二级菜单的结构与本地主菜单的结构相同,每个本地二级菜单也是由多个菜单项组成。另外,手机制造商还为每个本地二级菜单和本地主菜单设置唯一的一个ID来标识,为了便于说明,可以将本地主菜单和本地二级菜单统称为本地菜单。\n[0058] 其中,在手机的Android平台内的数据库中存储每个本地菜单的菜单ID与其包括的每个菜单项的对应关系。例如,某个手机中包括“信息”、“通信录”和“设置”等本地应用,而每个本地应用对应一个本地主菜单。如表3所示为“信息”这个本地应用对应的本地主菜单的菜单ID与该本地主菜单内的每个菜单项的对应关系。在表3中每行记录中包括一个菜单ID和一个菜单项,在表3,每行记录中的菜单项都包括菜单项名称、标识信息和图标ID,其中标识信息可以包括功能ID和二级菜单ID两个字段,第2至4行的每行记录中的标识信息只包括功能ID,而二级菜单的ID都为空,第5行记录中的标识信息只包括二级菜单ID,而功能ID为空。\n[0059] 表3\n[0060] \n \n[0061] 表3中的第5行记录中的菜单项内包括二级菜单ID为“ID18”,表明该菜单项对应一个ID为“ID18”的本地二级菜单。该本地二级菜单与本地主菜单的结构相同,其内也包括多个菜单项,如表4所示的手机制造商也为该本地二级菜单设置菜单ID和其内包括的每个菜单项的对应关系。\n[0062] 表4\n[0063] \n[0064] 其中,手机制造商都将表3和表4存储在Android平台中的数据库中,手机制造商在生产手机时,将Android平台的数据库中存储的菜单项与菜单ID的对应关系以及每个本地应用烧写在手机的存储器中。因此,在手机的存储器中,Android平台的数据库与配置管理器分别位于不同的存储空间中。\n[0065] 其中,在手机的桌面上,手机制造商为每个本地应用创建一个图标,且将每个本地应用对应的图标与该本地应用对应的本地主菜单的菜单ID绑定在一起。用户通过选中某个图标,提交打开菜单的请求,且该请求中携带绑定在该图标上的菜单ID,然后执行如下的步骤203至206,进行创建该请求携带的菜单ID对应的本地主菜单,包括:\n[0066] 步骤203:接收打开菜单的请求,该请求中携带菜单ID,创建携带的菜单ID对应的本地主菜单;\n[0067] 具体地,接收打开菜单的请求,创建菜单列表,根据打开菜单的请求中携带的菜单ID,在Android平台的数据库中存储的菜单项与菜单ID的对应关系中,获取对应的所有菜单项,将每个菜单项中包括的菜单项名称填充在创建的菜单列表中,在菜单列表中,将每个菜单项中的菜单项名称和标识信息进行绑定,得到本地主菜单。\n[0068] 进一步地,如果某个菜单项中还包括图标ID,则在手机存储器中,根据图标ID获取对应的图标,相应地,将获取的图标和该菜单项中的菜单项名称一起填充到创建的菜单列表中。\n[0069] 例如,接收打开菜单的请求,该请求中携带菜单ID为ID1,创建菜单列表,在Android平台的数据库中存储的表3中,根据该请求中携带的ID1获取对应的所有菜单项,如表5所示,其中,每个菜单项中都包括图标ID;\n[0070] 表5\n[0071] \n[0072] 在手机的存储器中,再根据每个菜单项中的图标ID获取对应的图标,将每个菜单项中的菜单项名称和对应的图标填充在菜单列表中,在菜单列表中,将每个菜单项内包括的菜单项名称与标识信息进行绑定,得到如图3所示的本地主菜单。例如,表5中的第3行所示的菜单项包括菜单项名称为“写信息”、标识信息为功能“ID10”和图标ID为“ID11”,根据图标ID11获取对应的图标,将该菜单项中的菜单项名称为“写信息”和获取的图标填充在菜单列表中,将该菜单项中的“写信息”与功能“ID10”进行绑定。\n[0073] 其中,创建的菜单列表中只有一个空白的表格,且当每次将某个菜单项名称填充到该空白的表格后,自动的为该菜单列表再创建一个空白的表格,因此,菜单列表中会一直存在一个空白的表格。\n[0074] 步骤204:根据携带的菜单ID,从配置管理器中查找对应的菜单项;其中,查找的菜单项中至少包括菜单项名称和标识信息;\n[0075] 其中,从配置管理器中查找的菜单项都为第三方应用的菜单项。例如,根据携带的ID1,从如表2所示的配置管理器中查找对应的菜单项,其中,查找的菜单项中包括菜单项名称为“邮件”,标识信息包括应用ID为“ID10”和功能ID为“ID101”,而该菜单项为“邮件系统”这个第三方应用的菜单项。\n[0076] 步骤205:将获取的菜单项添加到本地主菜单中,并显示本地主菜单;\n[0077] 具体地,在本地主菜单的菜单列表中,分别将获取的菜单项中包括的菜单名称填充在未被占用的表格中,在本地主菜单中将获取的菜单项中的菜单项名称与标识信息进行绑定,显示本地主菜单。\n[0078] 进一步地,如果获取的菜单项中还包括图标ID,则在安装在手机中的第三方应用的文件集合中获取对应的图标,相应地,将该图标与该菜单项中的菜单项名称填充在本地主菜单的菜单列表中的未被占用的表格中。\n[0079] 例如,根据图标ID为“ID102”,在安装在手机的第三方应用的文件集合中,查找对应的图标,将该菜单项中的菜单项名称“邮件”以及查找的图标填充在菜单项列表中,在该菜单列表中将该菜单项中的标识信息与菜单项名称“邮件”进行绑定,即将应用“ID10”和功能“ID101”都绑定在菜单项名称“邮件”上,得到的本地主菜单如图4所示。\n[0080] 其中,在本实施例中,在手机存储器中划分一个未被占用的空间,该空间用于存储第三方应用的菜单项和该菜单项所属本地菜单ID,因此,不需要通过修改Android代码,将第三方应用的菜单项和该菜单项所属本地菜单ID存储在Android的数据库中。当用户需要打开某个本地主菜单时,先创建用户需要打开的本地主菜单,然后直接在该本地主菜单中添加第三方应用的菜单项,从而实现将第三方应用的菜单项添加到本地主菜单中。\n[0081] 进一步地,当用户在显示的本地主菜单中选择某个菜单项时,将用户选择的菜单项的背景色替换成特定的背景色。\n[0082] 例如,可以将如图4所示的本地主菜单显示给用户。其中,当用户在本地主菜单中选中某一个菜单项时,该本地主菜单获取绑定在该菜单项中的菜单项名称上的标识信息,如果获取的标识信息中只包括功能ID,则根据获取的功能ID从手机的存储器中查找对应的功能,即查找实现该功能的API函数,然后直接调用查找的功能;如果获取的标识信息中包括应用ID和功能ID,则根据应用ID从手机的存储器中查找对应的应用的文件集合,并根据功能ID在查找的文件集合中查找对应的功能,再调用查找的功能;如果获取的标识信息中包括二级菜单ID,则生成打开菜单的请求,且该请求中携带获取的二级菜单ID,提交该打开菜单的请求,然后按如下的步骤206-208创建并显示该二级菜单,包括:\n[0083] 步骤206:接收打开菜单的请求,该请求中携带的二级菜单的菜单ID,创建携带的二级菜单的ID对应的本地二级菜单;\n[0084] 具体地,接收打开菜单的请求,创建菜单列表,根据打开菜单的请求中携带的菜单ID,从手机的Android的数据库中的菜单项与菜单ID的对应关系中,获取对应的所有菜单项,将每个菜单项中包括的菜单项名称填充在创建的菜单列表中,在菜单列表中,将每个菜单项中的菜单项名称和标识信息进行绑定,得到本地二级菜单。\n[0085] 进一步地,如果某个菜单项中还包括图标ID,则在手机存储器中,根据图标ID获取对应的图标,将获取的图标和该菜单项中的菜单项名称一起填充到创建的菜单列表中。\n[0086] 例如,在如图4所示菜单列表中,当用户选中“清空邮件”后,接收打开菜单的请求,该打开菜单的请求中携带菜单ID为ID18,创建菜单列表,根据携带的ID18从Android的数据库中存储的表4中,查找对应的所有菜单项,如表6所示;\n[0087] 表6\n[0088] \n[0089] 将表6中的菜单项名称“收信箱”、“发信箱”和“草稿箱”填充到创建的菜单列表中,在菜单表列表中,将“收信箱”与“ID19”进行绑定,将“发信箱”与“ID20”进行绑定以及将“草稿箱”与“ID21”进行绑定,得到的本地二级菜单如图5所示。\n[0090] 步骤207:根据携带的二级菜单的菜单ID,从配置管理器中查找对应的菜单项;其中,查找的菜单项至少包括菜单项名称和标识信息;\n[0091] 例如,根据携带的ID18,从如表2所示的配置管理器中查找对应的菜单项,其中,该菜单项包括菜单项名称为“DirectMessage”,标识信息包括功能ID为“ID103”和应用ID为“ID10”。\n[0092] 步骤208:将获取的菜单项添加到本地二级菜单中,显示本地二级菜单。\n[0093] 具体地,将获取的菜单项中包括的菜单名称填充在本地二级菜单的菜单列表中的未被占用的表格中,在本地二级菜单中将该菜单项包括的菜单项名称与标识信息进行绑定,显示本地二级菜单。\n[0094] 例如,将获取的菜单项名称“DirectMessage”填充在本地二级菜单的菜单列表中的未被占用的表格中,在本地二级菜单中将该菜单项的菜单项名称与功能ID“ID103”进行绑定,得到的本地二级菜单如图6所示,再显示如图6所示的本地二级菜单。\n[0095] 其中,在本实施例中,当用户需要打开某个本地二级菜单时,先创建用户需要打开的本地二级菜单,然后直接在该本地二级菜单中添加第三方应用的菜单项,从而实现将第三方应用的菜单项添加到本地二级菜单中。\n[0096] 其中,手机制造商在手机中设置一个XSD(XML Schemas Definition,XML结构定义)规格,在XSD规格中定义了手机中的每个本地菜单的结构,进一步地,当执行完步骤201之后且在执行步骤202之前,还可以根据手机中的XSD规格验证查找的配置文件,如果验证通过,则执行步骤202,否则,操作结束。例如,假设在XSD中定义某个本地菜单不能再添加新的菜单项,而查找的配置文件中存在需要添加到该本地菜单的菜单项,则在通过XSD规格来验证查找配置文件时,得到的结果为验证不通过,并且操作结束。\n[0097] 其中,在本实施例中,在添加第三方应用的菜单项的过程中,没有对手机中的Android平台中的代码进行修改,所以手机中的每个本地应用没有被破坏,当第三方应用需要与本地应用进行交互信息时,第三方应用首先将需要交互的信息提交给Android平台,再由Android平台接收交互的信息并将该交互的信息转交给该本地应用。\n[0098] 其中,本实施例提供的方法可以对任何支撑Android平台的终端设备中的本地菜单进行添加第三方应用的菜单项。\n[0099] 在本发明实施例中,将第三方应用的菜单项和该菜单项所属的本地菜单的ID存储在配置管理器中,当创建本地菜单时,从配置管理器中获取需要添加到该本地菜单的第三方应用的菜单项,将获取的菜单项添加到该本地菜单中。由于将第三方应用的菜单项和该菜单项所属的本地菜单ID存储在配置管理器中,因而不需要再通过修改Android代码将第三方应用的菜单项添加到Android的数据库中;由于将第三方应用的菜单项直接添加到本地菜单中,从而实现将第三方应用的菜单项添加到本地菜单中。\n[0100] 实施例3\n[0101] 如图7所示,本发明实施例提供了一种在Android的菜单中添加菜单项的设备,包括:\n[0102] 第一创建模块301,用于接收打开本地菜单的请求,该请求中携带菜单ID,创建该菜单ID对应的本地菜单;\n[0103] 获取模块302,用于根据该菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;\n[0104] 添加模块303,用于将获取的第三方应用的菜单项添加到本地菜单中,显示添加第三方应用的菜单项的本地菜单。\n[0105] 其中,获取的第三方应用的菜单项至少包括菜单项名称和标识信息,相应地,[0106] 添加模块303具体包括:\n[0107] 填充单元,用于在本地菜单的菜单列表中,将获取的第三方应用的菜单项中的菜单项名称填充在菜单列表中未被占用的表格中;\n[0108] 绑定单元,用于将获取的第三方应用的菜单项中的菜单项名称与标识信息进行绑定,其中,标识信息用于标识功能或二级菜单;\n[0109] 第一显示单元,用于显示添加第三方应用的菜单项的本地菜单;\n[0110] 其中,如果获取的第三方应用的菜单项还包括图标ID,添加模块303还包括:\n[0111] 查找单元,用于在第三方应用的文件集合中查找该图标ID对应的图标;\n[0112] 相应地,\n[0113] 填充单元,具体用于将获取的第三方应用的菜单项中的菜单项名称和查找图标填充在菜单列表中未被占用的表格中;\n[0114] 进一步地,该设备还包括:\n[0115] 存储模块,用于从第三方应用的文件集合中查找配置文件,通过对配置文件进行解析,获取第三方应用的菜单项和该菜单项所属本地菜单ID,并将第三方应用的菜单项和该菜单项所属本地菜单ID存储在未被占用的空间内;\n[0116] 进一步地,该设备还包括:\n[0117] 验证模块,用于当存储模块查找到配置文件后,根据已定义的本地菜单的结构,对该配置文件进行验证;\n[0118] 进一步地,该设备还包括:\n[0119] 第一获取模块,用于当用户在添加了所述第三方应用的菜单项的本地菜单中选择菜单项时,获取绑定在选择的菜单项中的菜单项名称上的标识信息;\n[0120] 第二获取模块,用于如果获取的标识信息中包括功能ID,则根据该功能ID获取对应的功能;\n[0121] 第二创建模块,用于如果获取的标识信息中包括二级菜单ID,则创建该二级菜单ID对应的二级菜单;\n[0122] 其中,第二创建模块具体包括:\n[0123] 创建单元,用于创建该二级菜单ID对应的本地二级菜单;\n[0124] 获取单元,用于根据该二级菜单ID,在已存储的第三方应用的菜单项和本地菜单ID的对应关系中,获取对应的第三方应用的菜单项;\n[0125] 添加单元,用于将第三方应用的菜单项添加到本地二级菜单中;\n[0126] 第二显示单元,用于显示添加第三方应用的菜单项的本地二级菜单;\n[0127] 其中,该设备可以是安装Android平台的手机或支撑Android平台的终端设备。\n[0128] 在本发明实施例中,将第三方应用的菜单项和该菜单项所属的本地菜单的ID存储在配置管理器中,当创建本地菜单时,从配置管理器中获取需要添加到该本地菜单的第三方应用的菜单项,将获取的菜单项添加到该本地菜单中。由于将第三方应用的菜单项和该菜单项所属的本地菜单ID存储在配置管理器中,因而不需要再通过修改Android代码将第三方应用的菜单项添加到Android的数据库中;由于将第三方应用的菜单项直接添加到本地菜单中,从而实现将第三方应用的菜单项添加到本地菜单中。\n[0129] 以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。\n[0130] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2019-06-11
专利权人的姓名或者名称、地址的变更
专利权人由华为终端(东莞)有限公司变更为华为终端有限公司
地址由523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5变更为523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5
- 2017-11-28
专利权的转移
登记生效日: 2017.11.09
专利权人由华为终端有限公司变更为华为终端(东莞)有限公司
地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5
- 2013-12-04
- 2010-11-03
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 201010176312.X
申请日: 2010.05.14
- 2010-09-15
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-11-08
|
2005-05-08
| | |
2
| |
2007-07-25
|
2006-01-19
| | |
3
| |
2008-08-20
|
2008-02-22
| | |
4
| |
2008-07-16
|
2008-01-31
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |