一种设备标识获取方法、装置及设备与流程

文档序号:15980888发布日期:2018-11-17 00:19阅读:138来源:国知局

本申请涉及数据处理领域,具体涉及一种设备标识获取方法、装置及设备。

背景技术

设备标识(deviceidentifier),用于唯一标识设备,对于设备的应用程序开发者来说,需要通过获取设备标识,并基于获取到的设备标识实现应用程序的某些功能,如通过采集用户行为数据,进行画像设计,以实现个性化智能推荐的功能等。

但是,由于设备标识与设备使用者的隐私数据相关联,为避免用户隐私数据的泄露,所以目前设备生产商并不会为应用程序开发者直接提供的设备标识。以苹果公司设备为例,苹果公司在ios5.0系统版本的设备中废除了为应用程序开发者提供设备标识的功能。

那么,在设备生产商未提供设备标识的前提下,应用程序开发者如何获取到设备标识以完善应用程序功能,是当前各个应用程序开发者亟待解决的问题。



技术实现要素:

为解决上述问题,本申请提供了一种设备标识获取方法、装置及设备,具体技术方案如下:

第一方面,本申请提供了一种设备标识获取方法,所述方法应用于终端,所述终端安装有预设应用程序,所述方法包括:

当所述终端检测到所述预设应用程序被启动的操作时,判断所述预设应用程序是否为首次被启动;

如果是,则所述终端调用预设算法获取所述终端的设备标识,并将所述设备标识存储于所述终端的密码管理系统;其中,所述密码管理系统用于提供所述终端的设备标识。

可选的,所述方法还包括:

当所述终端确定所述预设应用程序为非首次被启动时,判断所述密码管理系统中是否存储有所述终端的设备标识;

如果是,则所述终端从所述密码管理系统获取所述设备标识。

可选的,所述方法还包括:

当所述终端确定所述预设应用程序为非首次被启动,且所述密码管理系统中未存储有所述终端的设备标识时,则所述终端调用所述预设算法获取所述终端的设备标识,并将所述设备标识存储于所述终端的密码管理系统。

可选的,所述终端包括具有ios操作系统的终端,所述预设算法包括nsuuid方法,所述密码管理系统为钥匙串keychain。

可选的,所述将所述设备标识存储于所述终端的密码管理系统,包括:

构建字典dictionary数据结构,所述dictionary数据结构用于存储所述设备标识;

调用secitemadd方法,将所述存储有所述设备标识的dictionary数据结构存储于所述终端的keychain中。

第二方面,本申请提供了一种设备标识获取装置,所述装置应用于终端,所述终端安装有预设应用程序,所述装置包括:

第一判断模块,用于在检测到所述预设应用程序被启动的操作时,判断所述预设应用程序是否为首次被启动;

第一获取模块,用于在所述第一判断模块的结果为是时,调用预设算法获取所述终端的设备标识;

存储模块,用于将所述设备标识存储于所述终端的密码管理系统;其中,所述密码管理系统用于提供所述终端的设备标识。

可选的,所述装置还包括:

第二判断模块,用于在所述第一判断模块的结果为否时,判断所述密码管理系统中是否存储有所述终端的设备标识;

第二获取模块,用于在所述第二判断模块的结果为是时,从所述密码管理系统获取所述设备标识。

可选的,所述装置还包括:

触发模块,用于在所述第一判断模块的结果为否,且所述第二判断模块的结果为否时,触发所述第一获取模块和所述存储模块。

可选的,所述终端包括具有ios操作系统的终端,所述预设算法包括nsuuid方法,所述密码管理系统为钥匙串keychain。

可选的,所述存储模块,包括:

构建子模块,用于构建字典dictionary数据结构,所述dictionary数据结构用于存储所述设备标识;

存储子模块,用于调用secitemadd方法,将所述存储有所述设备标识的dictionary数据结构存储于所述终端的keychain中。

第三方面,本申请提供了一种设备标识获取设备,所述设备包括存储器和处理器,

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令,执行上述的设备标识获取方法。

本申请提供的设备标识获取方法,应用于需要获取设备标识的终端,该终端安装有预设应用程序,具体的,当终端检测到预设应用程序被启动的操作时,判断该预设应用程序是否为首次被启动;如果是,则终端调用预设算法获取该终端的设备标识,并将设备标识存储于终端的密码管理系统;其中,密码管理系统用于提供该终端的设备标识。由于终端的密码管理系统的安全性能够被保障,即密码管理系统中存储的设备标识不会因终端重启、卸载应用、系统升级等原因而丢失,所以,本申请利用密码管理系统的这一优势保证了设备标识的唯一性和不可变性,以便应用程序开发者能够从中获取终端的设备标识,用于完成应用程序功能的开发。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种设备标识获取方法的流程图;

图2为本申请实施例提供的一种应用于具有ios操作系统的终端的设备标识获取方法的流程图;

图3为本申请实施例提供的一种设备标识获取装置的结构示意图;

图4为本申请实施例提供一种设备标识获取设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,设备生产商(如苹果设备生产商)一般不会提供给应用程序开发者获取设备标识以应用于应用程序开发的接口,所以,为满足应用程序开发需求,对于应用程序开发者亟需解决如何获取设备标识的问题。

基于此,本申请提供了一种设备标识获取方法、装置及设备,该方法应用于需要获取设备标识的终端,该终端安装有预设应用程序,具体的,当终端检测到预设应用程序被启动的操作时,判断该预设应用程序是否为首次被启动;如果是,则终端调用预设算法获取该终端的设备标识,并将设备标识存储于终端的密码管理系统;其中,密码管理系统用于提供该终端的设备标识。由于终端的密码管理系统的安全性能够被保障,即密码管理系统中存储的设备标识不会因终端重启、卸载应用、系统升级等原因而丢失,所以,本申请利用密码管理系统的这一优势保证了设备标识的唯一性和不可变性,以便应用程序开发者能够从中获取终端的设备标识,用于完成应用程序功能的开发。

以下具体介绍本申请提供的一种设备标识获取方法的实施例,参考图1,为本申请实施例提供的一种设备标识获取方法的流程图,该方法应用于终端,该终端安装有预设应用程序,该方法具体包括:

s101:当所述终端检测到所述预设应用程序被启动的操作时,判断所述预设应用程序是否为首次被启动,如果是,则执行s102;如果否,则执行s103。

本申请实施例中的终端是指能够安装、运行预设应用程序的设备,如智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等等;更具体的,可以如操作系统为ios的苹果品牌的智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等等。另外,预设应用程序可以为运行的过程中需要获取设备标识的应用程序。

实际应用中,在终端检测到预设应用程序被启动的操作时,判断本次启动是否为该预设应用程序被安装后的首次启动。具体的,可以通过预设参数记录预设应用程序被启动的次数,终端通过读取该预设参数即可获知该预设应用程序是否为首次启动。

值得注意的是,上述判断预设应用程序是否为首次被启动的方式只是其中的一种具体的实现方式,在此不对其他实现方式进行限制。

s102:所述终端调用预设算法获取所述终端的设备标识,并将所述设备标识存储于所述终端的密码管理系统;其中,所述密码管理系统用于提供所述终端的设备标识。

本申请实施例中,在终端检测到预设应用程序被启动的操作,且确定本次启动为预设应用程序被安装后的首次启动时,终端可以调用预设算法获取自身的设备标识。为了保证获取到的设备标识不会因终端重启、卸载应用、系统升级等原因而丢失,本申请实施例可以将获取到的设备标识存储于该终端的密码管理系统中。具体的,由于密码管理系统能够保证设备标识的唯一性和不可变性,所以,在后续设备标识需要被获取时,可以从密码管理系统中获取即可。

s103:判断所述密码管理系统中是否存储有所述终端的设备标识,如果是,则执行s104;如果否,则执行s102。

本申请实施例中,在终端检测到预设应用程序被启动的操作,并确定本次启动并非预设应用程序被安装后的首次启动时,查询终端的密码管理系统中是否存储有该终端的设备标识。可以理解的是,由于预设应用程序并非首次启动,所以终端的设备标识已经被获取并存储于密码管理系统中,因此,终端在确定该预设应用程序为非首次启动时,从密码管理系统获取设备标识即可。

在从密码管理系统获取设备标识之前,首先查询该密码管理系统中是否存储有终端的设备标识,如果有,则从所述密码管理系统获取所述设备标识即可;否则,重新执行s102,即调用预设算法获取终端的设备标识,并将设备标识存储于终端的密码管理系统。

s104:终端从所述密码管理系统获取所述设备标识。

在s103中,终端确定密码管理系统中存储有该终端的设备标识后,从密码管理系统中直接获取设备标识,用于后续预设应用程序的数据处理即可。

本申请实施例提供的设备标识获取方法,应用于需要获取设备标识的终端,该终端安装有预设应用程序,具体的,当终端检测到预设应用程序被启动的操作时,判断该预设应用程序是否为首次被启动;如果是,则终端调用预设算法获取该终端的设备标识,并将设备标识存储于终端的密码管理系统;其中,密码管理系统用于提供该终端的设备标识。由于终端的密码管理系统的安全性能够被保障,即密码管理系统中存储的设备标识不会因终端重启、卸载应用、系统升级等原因而丢失,所以,本申请利用密码管理系统的这一优势保证了设备标识的唯一性和不可变性,以便应用程序开发者能够从中获取终端的设备标识,用于完成应用程序功能的开发。

基于上述实施例的介绍,本申请还提供了一种应用于具有ios操作系统的终端的设备标识获取方法,参考图2,为本申请实施例提供的应用于具有ios操作系统的终端的设备标识获取方法的流程图,具体的,该方法包括:

s201:当所述终端检测到所述预设应用程序被启动的操作时,判断所述预设应用程序是否为首次被启动,如果是,则执行s202,如果否,则执行s203。

s202:终端调用nsuuid方法获取该终端的设备标识,并将所述设备标识存储于所述终端的钥匙串keychain;其中,keychain用于提供所述终端的设备标识。

本申请实施例中,终端为具有ios操作系统的终端,目前为苹果品牌终端。

实际应用中,nsuuid方法,即具有ios操作系统的终端生成通用唯一识别码uuid(universallyuniqueidentifier)的方法,nsuuid方法在ios6.0中存在,通过调用nsuuid方法获得终端的设备标识,但是,获取到的设备标识是ios操作系统不会存储的,每次调用nsuuid方法均会获得一个新的唯一标示符,即新的设备标识。本申请实施例中,在预设应用程序首次启动时,终端通过调用nsuuid方法获取该终端的设备标识,并且将其存储于keychain中,以保证设备标识的唯一性和不可变性。

一种可选的实施方式中,将获取到的设备标识存储与终端的keychain中,具体可以包括:

a、构建字典dictionary数据结构,所述dictionary数据结构用于存储所述设备标识;

b、调用secitemadd方法,将所述存储有所述设备标识的dictionary数据结构存储于所述终端的keychain中。

实际应用中,在将设备标识存储于keychain之前,构建字典dictionary数据结构,并利用dictionary数据结构存储设备标识。通过调用secitemadd方法,将存储有所述设备标识的dictionary数据结构存储于所述终端的keychain中。其中,secitemadd方法,即具有ios操作系统的终端用于向keychain中增加一条数据的方法,

s203:判断keychain中是否存储有所述终端的设备标识,如果是,则执行s204;如果否,则执行s202。

s204:终端从keychain中获取所述设备标识。

值得注意的是,s201-s204的理解可以参照s101-s104,在此不做过多介绍。

本申请实施例提供的应用于具有ios操作系统的终端的设备标识获取方法,利用终端的keychain中存储的设备标识不会因终端重启、卸载应用、系统升级等原因而丢失的优势,保证了设备标识的唯一性和不可变性,以便应用程序开发者能够从中获取终端的设备标识,用于完成应用程序功能的开发。

与上述实施例相对应的,本申请还提供了一种设备标识获取装置,参考图3,为本申请实施例提供的一种设备标识获取装置的结构示意图,所述装置应用于终端,所述终端安装有预设应用程序,该装置包括:

第一判断模块301,用于在检测到所述预设应用程序被启动的操作时,判断所述预设应用程序是否为首次被启动;

第一获取模块302,用于在所述第一判断模块的结果为是时,调用预设算法获取所述终端的设备标识;

存储模块303,用于将所述设备标识存储于所述终端的密码管理系统;其中,所述密码管理系统用于提供所述终端的设备标识。

所述装置还包括:

第二判断模块304,用于在所述第一判断模块的结果为否时,判断所述密码管理系统中是否存储有所述终端的设备标识;

第二获取模块305,用于在所述第二判断模块的结果为是时,从所述密码管理系统获取所述设备标识。

所述装置还包括:

触发模块,用于在所述第一判断模块的结果为否,且所述第二判断模块的结果为否时,触发所述第一获取模块和所述存储模块。

一种具体的实现方式中,所述终端包括具有ios操作系统的终端,所述预设算法包括nsuuid方法,所述密码管理系统为钥匙串keychain。

具体的,所述存储模块,包括:

构建子模块,用于构建字典dictionary数据结构,所述dictionary数据结构用于存储所述设备标识;

存储子模块,用于调用secitemadd方法,将所述存储有所述设备标识的dictionary数据结构存储于所述终端的keychain中。

本申请实施例提供的设备标识获取装置,应用于需要获取设备标识的终端,该终端安装有预设应用程序,具体的,当终端检测到预设应用程序被启动的操作时,判断该预设应用程序是否为首次被启动;如果是,则终端调用预设算法获取该终端的设备标识,并将设备标识存储于终端的密码管理系统;其中,密码管理系统用于提供该终端的设备标识。由于终端的密码管理系统的安全性能够被保障,即密码管理系统中存储的设备标识不会因终端重启、卸载应用、系统升级等原因而丢失,所以,本申请利用密码管理系统的这一优势保证了设备标识的唯一性和不可变性,以便应用程序开发者能够从中获取终端的设备标识,用于完成应用程序功能的开发。

相应的,本发明实施例还提供一种设备标识获取设备,参见图4所示,可以包括:

处理器401、存储器402、输入装置403和输出装置404。设备标识获取设备中的处理器401的数量可以一个或多个,图4中以一个处理器为例。在本发明的一些实施例中,处理器401、存储器402、输入装置403和输出装置404可通过总线或其它方式连接,其中,图4中以通过总线连接为例。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行设备标识获取设备的各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置403可用于接收输入的数字或字符信息,以及产生与设备标识获取设备的用户设置以及功能控制有关的信号输入。

具体在本实施例中,处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现上述设备标识获取方法中的各种功能。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请实施例所提供的一种设备标识获取方法、装置及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1