[发明专利]一种提取Android系统百度地图基站数据的方法有效
申请号: | 201610944114.0 | 申请日: | 2016-11-02 |
公开(公告)号: | CN106503197B | 公开(公告)日: | 2019-08-06 |
发明(设计)人: | 黄旭;聂学良 | 申请(专利权)人: | 四川秘无痕科技有限责任公司 |
主分类号: | G06F16/29 | 分类号: | G06F16/29 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 641000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种提取Android系统百度地图基站数据的方法,包括以下步骤:S1:访问百度地图保存基站文件;S2:解析文件,获取其中保存基站的数据;S3:逆解析基站信息;S4:地图展示基站数据;S5:地图展示完成,结束解析。本发明的有益效果如下:补充了百度地图基站数据的提取方案,使得数据的完整性得到补充;归纳百度地图访问基站的次数,直观展示用户到达地点的频率;提取的基站是基于百度地图导航定位产生,因此准确性得到保证。 | ||
搜索关键词: | 一种 提取 android 系统 百度 地图 基站 数据 方法 | ||
【主权项】:
1.一种提取Android系统百度地图基站数据的方法,其特征在于包括以下步骤:S1:访问百度地图保存基站文件,步骤如下:S1.1:判断提取数据手机是否Root,记录布尔值类型标志F1;S1.1.1:判定系统中是否包含su文件,当不包含su文件时,直接判定F1为False,执行S5,当包含su文件时执行S1.1.2;S1.1.2:调用原生接口,开启PROCESS进程;S1.1.3:执行SHELL指令su,保存执行指令后的结果,当返回结果为0时,记录标志F1为True,否则记录为False;S1.1.4:判断F1的标志,当F1为True时执行操作S1.2,当F1为false时,代表操作系统没有root无法获取到数据区域的内容,结束解析,执行S5;S1.2:判定系统中是否存在百度地图应用,记录布尔值类型标志F2;S1.2.1:调用原生接口,开启PROCESS进程;S1.2.2:执行指令“ls/data/data/com.baidu.BaiduMap”,保存执行指令后的结果,当返回结果为包含“No such file or directory”时代表百度地图应用不存在,记录F2为false,否则记录F2为true;S1.2.3:当F2为true时执行S1.3,当F2为false时,代表百度地图应用不存在,结束解析,执行S5;S1.3:访问保存基站数据的数据库文件;S1.3.1:调用原生接口,开启PROCESS进程;S1.3.2:对百度地图的files目录执行chmod命令,获取该目录的最高权限;S1.3.3:使用文件获取api,获取该目录下面的所有的具体文件,记录为集合L1;S1.3.4:遍历L1,当遍历未结束时,记录遍历结果为R1,执行S1.3.5,当遍历结束,代表目标文件夹没有找到,结束解析,执行S5;S1.3.5:判断R1是文件夹还是文件,当是文件夹时执行S1.3.6,当是文件时执行S1.3.4;S1.3.6:获取R1的名称,记录为DirName1,将DirName1与字符串“ofld”做等值比较,当结果相等时执行S1.3.7,否者执行S1.3.4;S1.3.7:使用文件获取api,以获取DirName1文件夹下面的所有文件,记录为集合L2;S1.3.8:遍历L2,当遍历未结束时,记录遍历结果为R2并执行S1.3.9,当遍历结束时,代表目标文件没有找到,结束解析,执行S5;S1.3.9:判断R2是文件夹还是文件,当是文件时执行S1.3.10,当不是文件时执行S1.3.8;S1.3.10:获取R2的名称,记录为fileName1,将fileName1和字符串“ofl_statistics”做等值比较,当相等时执行S1.4,当不相等时执行S1.3.8;S1.4:对文件R2使用chmod指令,获取到文件的最高权限;S2:解析文件,获取其中保存基站的数据,步骤如下:S2.1:创建基站实体BS,包含MCC、MNC、LAC、CELLID、FREQ字段,同时创建保存基站的集合B1;S2.2:判定R2文件类型;S2.2.1:使用api判断R2文件的大小,当长度小于16字节时,代表该文件不为数据库文件,结束解析,执行S5,当大于16字节执行S2.2.2;S2.2.2:将R2文件使用流的方式读取R2的最开始的16个字节记录为filehead,将filehead依次与0X53,0X51,0X4C,0X69,0X74,0X65,0X20,0X66,0X6F,0X72,0X6D,0X61,0X74,0X20,0X33,0X00这16个字节做等值比较;当完全相同时执行S2.3,当不完全相同时,代表该文件不为数据库文件,结束解析,执行S5;S2.3:读取数据库文件;S2.3.1:使用api加载数据库文件R2,当加载成功时,执行S2.3.2,当加载失败时,代表数据库无法加载,结束解析,执行S5;S2.3.2:使用sql语句“SELECT name FROM sqlite_master WHERE type='table'ORDER BY name”获取该数据库的所有表名的游标,记录为C1;S2.3.3:循环解析C1,当遍历未结束时,记录结果为R3,执行S2.3.4,当遍历结束时,保存基站数据的表不存在,结束解析,执行S5;S2.3.4:R3为游标的一行完整的数据,获取该行的第一列数据,记录为字符串类型的表tbName;S2.3.5:将表tbName的字符串与字符串“CL”做等值比较,当相等时执行S2.4,当不相等时执行S2.3.3;S2.4:使用api解析表tbName,同时获取指定列名为“originid”,“frequency”;这两个列分别代表基站数据和该基站访问的次数,记录结果为C2,C2是一个关于表tbName的游标;S2.4.1:循环遍历C2,当存在数据时记录结果为R3,执行S2.4.2,不存在数据时,代表解析结束,执行S3;S2.4.2:以字符串的形式获取R3的列名为“originid”的数据,记为data1,data1保存有基站信息,获取frequency数据,记为data2,data2是访问该基站的次数;S2.4.3:解析data1,获取基站数据;S2.4.3.1:使用“|”分割data1,结果记录为split_array数组;S2.4.3.2:判断split_array数组中含有多少个数据,记为len,当len的长度是4时执行S2.4.3.3,当长度不为4时执行S2.4.1;S2.4.3.3:split_array的第一个值记为mcc,split_array的第二个值记为mnc,split_array的第三个值记为lac,split_array的第四个值记为cid;S2.4.4:创建基站实体BS;S2.4.5:将BS的MCC设置为mcc,MNC设置为mnc,LAC设置lac,CELLID设置为cid,FREQ设置为data2;S2.4.6:将BS加入B1,并执行S2.4.1;S3:逆解析基站信息,步骤如下:S3.1:构建经纬度实体,实体应当包含经度、维度、坐标系、访问次数,分别是Lat,Lon,Coord,Freq,创建经纬度集合L3;判断集合B1的大小,记录为size,若size不为0,代表数据存在,执行S3.2,若size为0,代表基站数据不存在,执行S5;S3.2:遍历B1,当存在数据时,记录数据为BS2,执行S3.3,当不存在数据时,代表数据遍历结束,执行S4;S3.3:根据相应基站解析平台自定义的规则,传入BS2的MCC,MNC,LAC,CELLID选项,得到解析结果为result2;S3.4:根据相应平台返回结果规则,获取基站BS2逆解析的经度、纬度,记录为lat、lon,逆解析BS2时选择的坐标系,记录为coord;S3.5:当lat和lon同时不为空字符串时,执行S3.6,否则执行S3.2;S3.6:创建经纬度实体P,将P的Lat,Lon,Coord设置从result2中获取的lat,lon,coord,P的Freq设置为基站实体BS2中记录的FREQ;S3.7:将P加入经纬度集合L3,并执行S3.2;S4:地图展示基站数据,步骤如下:S4.1:选择展示经纬度数据的地图类型;S4.2:判断集合L3的大小,记录为size2,当size2为0时代表数据不存在,执行S5,当size2不为0时,执行4.3;S4.3:遍历L3,当遍历结果存在时记录为p1,执行S4.4,当遍历结果不存在时,代表遍历结束,执行S4.7;S4.4:根据p1中记录的coord进行坐标系准确度修正,修正的方式有两种,一是使用所选地图平台的api进行修正,二是直接根据坐标系之间的转换算法进行强制性的修正;S4.5:传入p1的Lat,Lon,Coord,进行修正得到该平台的修正经纬度,lat1,lon1,同时根据各自地图平台确认其固定的坐标系,记为coord1;S4.6:将p1的Lat,Lon,Coord重新赋值为lat1,lon1,coord1,执行S4.3;S4.7:遍历经过步骤S4.4、S4.5及S4.6后的L3,当遍历结果存在时记录为p2,执行S4.8,当遍历结果不存在时,代表遍历结束,执行S5;S4.8:根据p2中的经度:纬度在地图中进行标注;S4.9:根据p2中的Freq,标注出该智能手机所访问的基站的次数,从而标注出该智能手机经常访问地点,执行S4.7;S5:地图展示完成,结束解析。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川秘无痕科技有限责任公司,未经四川秘无痕科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610944114.0/,转载请声明来源钻瓜专利网。