青苹果团队是干啥的GPS-IOS定位技术团队+1244989087

iOS 关于定位你该注意的那些事 - 简书
iOS 关于定位你该注意的那些事
其实,对于苹果用户而言,定位的方案只有一种,那就苹果自己的定位服务CoreLocation,因为苹果定位不允许接入第三方,百度地图和高德地图只是对苹果定位服务的二次封装,方便我们使用。
1.定位方式和定位原理
移动端定位就是三种:基站定位、WiFi定位、GPS定位。其实无论哪种定位,都是根据已知点位置信息来定位当前位置,原理都是一样的,只是精度、定位速度和耗电的差别。第一代iPhone只支持基站定位,从iPhone3G开始支持GPS定位,准确点说是AGPS,是GPS的加强版。
基站定位的特点就是速度快,误差太大了,在几百米到几公里之间。如果手机没连WiFi,初次定位返回的位置信息基本上都是基站定位。因为每个基站都有唯一标识符,苹果手机可以收集到附近所有基站和他们的标识符,把这些信息传给苹果云端服务器,返回给手机,所以这种定位方式需要网络。另外苹果针对这个做了优化,苹果手机提前将一些重要的基站信息存储在本地,以便支持无网定位,当然精度肯定不能保证了,完全看你所在的区域苹果是否存储基站了。虽然这个很方便,但是对我们这个项目就很坑了。我们的App需要室内的定位精度非常高,使用联通、电信卡的用户有些时候信号不好(是信号不好,不是没有),苹果自动执行无网定位,定位出来的坐标误差特别大, 能达到一两公里,而且我们还没有办法自己改变定位方式,这就比较坑了。
WiFi定位和基站定位原理是相同的,苹果手机可以获得周围路由器或者AP的Mac地址,然后去苹果的后台根据Mac地址查询路由器或者AP信息,通过计算得出当前位置,返回给用户,这说明了你的路由器或者AP的信息是存储在苹果后台的,他们每天都收集这些信息。这个最早是由Skyhook公司发明的,一开始苹果也用他们的服务,后来开始自己干了。WiFi定位速度很快,耗电介于基站定位和GPS之前,定位几十米,很靠谱。而且苹果做了优化,等你连了一个WiFi热点之后,苹果会把周围的热点信息都下载下来,至于下载热点的范围就看你周围热点密集度了,如果在市内也就下载一条街的,去热点不密集的地方,范围就会大一点。这有什么用?用处大了。只要用户打开WiFi,即使不连,也会提高定位精度,但是这有一个前提,就是用户的手机在附近上过网,手机里已经存储了周围WiFi的信息。
GPS定位是苹果最后支持的,定位精度肯定是最高了,我自己测试了一下应该在5米以内,但是耗时最长,耗电最厉害,需要联网,需要在室外。苹果是先利用WiFi定位或者基站定位得出一个大概位置信息,上传苹果服务器,苹果服务器获根据这个位置反馈给手机周围卫星的信息,手机在算出自己的位置。这是苹果的优化,如果不是这样,就需要手机自己去扫描分析周围卫星信息了,可能需要10几分钟,现在只要1-2秒了。
2.高德地图的多次定位
即使执行了停止定位的方法:
- (void)stopUpdatingL
高德地图仍然会继续定位,一般会定位4次。他先给返回一个大致的位置,之后再进行校正,所以后面返回的坐标精度比前面的高。如果你只想让他定位一次,可以自己做一个标记,定位过了就不要走代理方法。
- (void)amapLocationManager:(AMapLocationManager *)manager didUpdateLocation:(CLLocation *)location {
if (_isFirst) {
_isFirst = YES;
[self.locationManager stopUpdatingLocation];
如果需要很高的精度就不需要管它,只需执行停止定位的方法,让高德地图进行反复校验。这四次定位时间间隔很短,就是瞬间的事情。说瞬间有点不专业了,小伙伴们可以自己去测一下,我只能保证没超过1分钟。
[CLLocationManager locationServicesEnabled]
注意:这个方法是用来判断用户是否打开了导航,或者导航否可用,检测的是硬件信息。iOS调用系统功能之前,例如照相、录音等,都会检测一下硬件信息,是否这个功能可用。
3.地图定位的原理
地图定位其实就是三边测量定位,已知三个点的坐标,和未知点到这三个点的距离,求未知点的坐标。下面的图片引用自。
3InYve.png
已知(x1,y1),(x2,y2),(x3,y3),和三个圆的半径,求(x0,y0)。但实际情况是三个圆往往不能相交于一个点,因为三个圆的半径有误差,所以最后得到的是一个圆,而不是点,那个圆的半径其实就是精度。为了增加精度,也就是缩小圆的半径,我们需要更多的已知点和未知点到已知点的距离,来相互校验。天上的导航卫星就是已知点,GPS有21颗,备用三颗。
现在科技非常发达, GPS精度非常高,军用GPS精度都在1m以内,,据说是0.3m,真是太恐怖了。不过室内定位的精度就一般了,现在很多项目都是受限于室内定位精度不准而发展缓慢。
iOS开发程序员一枚。新浪微博:豆丶浆油条; qq ,有问题可以找我。
转载出处:http://blog.csdn.net/doubleuto/article/details/ 看到很多网友讨论iOS设备定位的问题,这里将我们所了解的关于iPhone、iPad、iPod等的定位原理做详细的介绍,希望能为大家增加知识,减少误区,更...
本文章是基于原文做了排版处理, 原文的排版看起来实在是有点难受所以做了简单格式化处理 正文: 最近看到好多 FY 对手机定位方式的含义及原理,特别是 wifi 辅助定位的原理搞不明白,所以整理了一下以前写的一篇科普文,发到论坛里,科普一下~~全文比较长,长文恐惧症患者慎入。...
首先说一下要阐述这些东西: 1、GPS定位。2、基站定位。3、WiFi辅助定位。4、AGPS定位。5、Glonass定位。6、北斗定位。7、定位举例。 从4s开始,iPhone手机具有以上中1、2、3、4、5共五种定位方式。 1、GPS定位GPS是大家耳熟能详的名词了,它是...
手机定位方式分为以下几种: 1、GPS定位。2、基站定位。3、WiFi定位。4、AGPS定位。5、Glonass定位。6、北斗定位。 从4s开始,iPhone手机具有以上中1、2、3、4、5共五种定位方式。 1、GPS定位 GPS是由美国研究的一种定位方式。其系统由在轨道上...
很多使用iphone的孩纸,可能并不了解iphone的定位原理。今天转载一篇网友的文章,来扫盲一下。 标注来源:http://m.blog.csdn.net/article/details?id=&from=singlemessage&isappinstal...
我知道 我对时间的珍视 早已超出寻常 我吝啬我的每一分 每一秒 我甚至将我的时间标榜上价格 以此估算 我失责的浪费 我知道这不好 这意味着我将失去 追寻美好的机会 我不愿意花费 不愿意付出 同样也意味着 我不会有回报 凡是美的 都需要一种浪费 给得起 就幸福得起
01 今天这个问题,功利性很强,但我很想回答。因为大部分考研的学子,都会有这样的疑问,而我,也是从考研中走过来的。 在回答之前,我想简单回顾一下自己的考研经历,过来了,觉得不苦,但身在其中,又太在乎,说当时不苦,都是骗人的。 我记得学校座位很少,为了抢座,每天五点半起。寒冬...
既然一分钟就能把目标再看一遍,我们就会常常停下来看看自己在做什么,是否与目标一致,不一致就调整自己的工作,这样就会更快获得成功。(《一分钟经理人》P19) 思考:
自海尔提出“日事日毕,日清日高”的工作理念后,似乎很多企业都在效仿,并以此作为对个人工作考...
忘记密码vim /etc/mongodb.conf
# 修改 mongodb 配置,将 auth = true 注释掉,或者改成 falseservice mongodb restart
# 重启 mongodb 服务 mongo为什么iPhone的GPS定位比安卓手机准确?(就实际使用体验而言,不是说技术参数上) - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。63被浏览<strong class="NumberBoard-itemValue" title="3分享邀请回答114 条评论分享收藏感谢收起2511 条评论分享收藏感谢收起怎么在对方苹果手机上安装定位系统_百度知道
怎么在对方苹果手机上安装定位系统
在 自己手机上登录他的ID也可以定位吗?
我有更好的答案
可以通过一下操作来实现;1、首先打开苹果手机里的“设置”找到icloud设置界面,如图。2、在icloud选项里面找到“查找我的iphone”并打开它,如图。3、准备工作做完后,需要打开icloud云端,其实就是个网页哪个平台都能打开,但是这里要注意必须使用非ie浏览器打开icloud.com(苹果云端的官网)。4、在登陆界面使用自己的itunes账号(这里注意跟踪哪台机器就登陆哪台机器的账号)。5、在icloud端就能找到“查找我的iphone”功能,如果你使用的pc那么就登陆上面说的网址,如果你用的macbook那么直接用icloud应用就好了。6、打开后就能在谷歌地图上定位对方手机的具体地址,如图。
采纳率:97%
叫做查找我iphone著名软件唯缺陷两台机苹账号要;另叫love Tracker文名叫做:哪 输入双手机号并且都同意要两用都苹行要网络希望能帮
本回答被网友采纳
这事儿悬,这可是玩火的勾当,抓到了就得进去,而且很容易发现——有什么事值得冒如此大的风险?
为您推荐:
其他类似问题
您可能关注的内容
苹果手机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在iOS开发中,要想加入地图和定位功能这2大功能,必须基于2个框架进行开发
(1)Map Kit :用于地图展示
(2)Core Location :用于地理定位
2个热门专业术语:
LBS :Location Based Service
SoLoMo :Social Local Mobile(索罗门)
2、CoreLocation框架的使用
CoreLocation框架使用前提:
导入框架:
导入主头文件:
#import &CoreLocation/CoreLocation.h&
CoreLocation框架使用须知:
CoreLocation框架中所有数据类型的前缀都是CL
CoreLocation中使用CLLocationManager对象来做用户定位
3、CLLocationManager
CLLocationManager的常用操作:
(1)开始用户定位
- (void)startUpdatingL
(2)停止用户定位
- (void) stopUpdatingL
当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法:
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)
locations参数里面装着CLLocation对象。
例如,取出位置对象:
CLLocation *loc = [locations firstObject];
打印经纬度:
NSLog(@"didUpdateLocations------%f %f", coordinate.latitude, coordinate.longitude);
使用前记得设置代理:
// 创建定位管理者
self.locMgr = [[CLLocationManager alloc] init];
// 设置代理
self.locMgr.delegate =
4、CLLocation
CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等。
@property(readonly, nonatomic) CLLocationCoordinate2D
@property(readonly, nonatomic) CLLocationD
@property(readonly, nonatomic) CLLocationD
路线,航向(取值范围是0.0& ~ 359.9&,0.0&代表真北方向)
@property(readonly, nonatomic) CLLocationS
行走速度(单位是m/s)
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location计算2个位置之间的距离
计算2个经纬度之间的直线距离
CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:40 longitude:116];
CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:41 longitude:116];
CLLocationDistance distance = [loc1 distanceFromLocation:loc2];
NSLog(@"距离为%f", distance);
5、CLLocationManager
@property(assign, nonatomic) CLLocationDistance distanceF
每隔多少米定位一次
@property(assign, nonatomic) CLLocationAccuracy desiredA
定位精确度(越精确就越耗电)
6、CLLocationCoordinate2D
CLLocationCoordinate2D是一个用来表示经纬度的结构体,定义如下:
typedef struct {
&&&&&&& CLLocationD // 纬度
&&&&&&& CLLocationD // 经度
} CLLocationCoordinate2D;
一般用CLLocationCoordinate2DMake函数来创建CLLocationCoordinate2D。
7、用户隐私的保护
开发者可以在Info.plist中设置NSLocationUsageDescription说明定位的目的(Privacy - Location Usage Description)。
一旦用户选择了&Don&t Allow&,意味着你的应用以后就无法使用定位功能。为了严谨起见,最好在使用定位功能之前判断当前应用的定位功能是否可用。
CLLocationManager有个类方法可以判断当前应用的定位功能是否可用:
+ (BOOL)locationServicesE
8、CLGeocoder
使用CLGeocoder可以完成&地理编码&和&反地理编码&:
地理编码:根据给定的地名,获得具体的位置信息(比如经纬度、地址的全称等)。
反地理编码:根据给定的经纬度,获得具体的位置信息。
地理编码方法:
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionH
反地理编码方法:
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionH
9、CLGeocodeCompletionHandler
当地理\反地理编码完成时,就会调用CLGeocodeCompletionHandler:
typedef void (^CLGeocodeCompletionHandler)(NSArray *placemarks, NSError *error);
这个block传递2个参数:
error :当编码出错时(比如编码不出具体的信息)有值
placemarks :里面装着CLPlacemark对象
10、CLPlacemark
CLPlacemark的字面意思是地标,封装详细的地址位置信息。
@property (nonatomic, readonly) CLLocation *
@property (nonatomic, readonly) CLRegion *
@property (nonatomic, readonly) NSDictionary *addressD
详细的地址信息
@property (nonatomic, readonly) NSString *
@property (nonatomic, readonly) NSString *
阅读(...) 评论()51CTO旗下网站
iOS 定位服务编程详解
iOS 不像Android系统在定位服务编程时,可以指定采用哪种途径进行定位。iOS的API把底层这些细节屏蔽掉了,开发人员和用户并不知道现在设备是采用 哪种方式进行定位的,iOS系统会根据设备的情况和周围的环境,采用一套最佳的解决方案。
作者:wx0123来源:cnblogs| 14:51
现在的移动设备很多都提供定位服务,使用iOS系统的iPhone、iPod&Touch和iPad都可以提供位置服务,iOS设备能提供3种不同途径进行定位:Wifi,&蜂窝式移动电话基站,&GPS卫星
不像Android系统在定位服务编程时,可以指定采用哪种途径进行定位。iOS的API把底层这些细节屏蔽掉了,开发人员和用户并不知道现在设备是采用
哪种方式进行定位的,iOS系统会根据设备的情况和周围的环境,采用一套最佳的解决方案。这个方案是这样的,如果能够接收GPS信息,那么设备优先采用
GPS定位,否则采用Wifi或蜂窝基站定位,在Wifi和蜂窝基站之间优先使用Wifi,如果无法连接Wifi才使用蜂窝基站定位。
总体来说GPS定位优点是准确、覆盖面广阔,缺点是不能被遮挡(例如:在建筑物里面收不到GPS卫星信号)、GPS开启后比较费电。蜂窝基站不仅误差比较大,而且会耗费用户流量费。而Wifi定位是最经济实惠的。
定位服务编程
定 位服务在iOS&6之后API没有太大的变化,主要使用CoreLocation框架,定位时候主要使用CLLocationManager、
CLLocationManagerDelegate和CLLocation。CLLocationManager是定位服务管理类它能够给我们提供获得
设备的位置信息和高度信息,也可以监控设备进入或离开某个区域,它还可以帮助获得设备的运行方向等。CLLocationManagerDelegate
是CLLocationManager类委托协议。CLLocation类是封装了位置和高度信息。
在定位服务的应用中,第一次请求获得位置信息时候,系统会提示用户是否允许开启定位服务。用户所在的位置是比较私密的信息,应用获取这些信息用户是有知情权和否定权的。如果应用在用户不知情的情况下,而获得用户的位置信息,这在某些国家是违法的行为。
选择&不允许&,定位服务就无法获得位置信息了,如果想改变这些设置可以在系统设置应用中开启或关闭。
我们可以关闭所有的定位服务,只需要把最上面的&定位服务&开关控件关闭就可以了。下面的具体应用也可以关闭和开启。
下面我们通过一个案例介绍一下使用定位服务编程,在应用启动时候启动,进入画面时候会获得位置信息,并显示在对应的文本框中,如果设备位置发送变化,也会重新会的位置信息,并更新对应的文本框。
首先要实现定位服务的案例,需要为工程引入CoreLocation框架,添加具体步骤是选择工程中的TARGETS&WhereAmI&Build&Phases&Link&Binary&With&Libraries,选择右下角的&+&按钮,打开框架和库选择对话框
再添加对话框中选择CoreLocation.framework,点击Add按钮后添加完成。UI设计部分我们不再介绍。我们直接看看实现代码,其中主要代码是视图控制器ViewController中编写的,其中ViewController.h代码如下:
#import&&UIKit/UIKit.h&&&&&&&#import&&CoreLocation/CoreLocation.h&&&&&&&#import&&CoreLocation/CLLocationManagerDelegate.h&&&&&&&@interface&ViewController&:&UIViewController&&CLLocationManagerDelegate&&&&&&&&&&&@property&(weak,&nonatomic)&IBOutlet&UITextField&*txtL&&&&&&&&&&@property&(weak,&nonatomic)&IBOutlet&UITextField&*txtL&&&&&&&&&&@property&(weak,&nonatomic)&IBOutlet&UITextField&*txtA&&&&&&@property(nonatomic,&strong)&CLLocationManager&*locationM&&&&&&@end&&&
在h文件中首先需要引入&CoreLocation/CoreLocation.h&
和&CoreLocation/CLLocationManagerDelegate.h&头文件。然后在定义ViewController
时需要声明实现CLLocationManagerDelegate协议。我们还定义了
CLLocationManager&*locationManager属性。
ViewController.m的viewDidLoad代码如下:
-&(void)viewDidLoad&&&&&&{&&&&&&[super&viewDidLoad];&&&&&&&&&&_locationManager&=&[[CLLocationManager&alloc]&init];&&&&&&_locationManager.delegate&=&&&&&&&_locationManager.desiredAccuracy&=&kCLLocationAccuracyB&①&&&&&&_locationManager.distanceFilter&=&1000.0f;&&②&&&&&&}&&&
在viewDidLoad方法中,主要对CLLocationManager的成员变量
_locationManager进行初始化。首先使用[[CLLocationManager&alloc]&init]语句实例化
CLLocationManager对象。然后_locationManager.delegate&=&self语句设置定位服务委托为self。第①
行代码设置desiredAccuracy属性,它是一个非常重要的属性,它的取值有6个常
量:kCLLocationAccuracyNearestTenMeters。精度10
米;kCLLocationAccuracyHundredMeters&。精度100
米;kCLLocationAccuracyKilometer&。精度1000
米;kCLLocationAccuracyThreeKilometers。精度3000米;kCLLocationAccuracyBest&。设备
使用电池供电时候,最高的精度;kCLLocationAccuracyBestForNavigation。导航情况下最高精度,一般要有外接电源时才
精度越高请求获得位置信息的时间就越短,这就意味着设备越耗电。因此一个应用应该选择适合它的精度,如果你的应用是一个车载导航应
用,kCLLocationAccuracyBestForNavigation是比较好的选择,你可以使用汽车上的电瓶为设备供电。如果你的应用为徒步
旅行者提供的导航应用,kCLLocationAccuracyHundredMeters是一个不错的选择。
第②行代码设置distanceFilter属性,它是距离过滤器,它定义了设备移动更新位置信息的最小距离,它的单位是米,本例设置了1000米。
初始化CLLocationManager完成之后,需要使用startUpdatingLocation方法开始定位服务。它是在ViewController.m的viewWillAppear:方法中,代码如下:
-&(void)viewWillAppear:(BOOL)animated&&&&&&&&&&&&&&{&&&&&&&&&&&&&&[super&viewWillAppear:animated];&&&&&&&&&&&&&&&&&&&&&&&&&&[_locationManager&startUpdatingLocation];&&&&&&&&&&&&&&}&&&
调用startUpdatingLocation方法定位服务就会开启,它根据设定的条件,不断请求回调新的位置信
息。因此开启这个方法一定要慎重,要在最合适的时候开启,在视图控制器的声明周期方法中viewWillAppear:是最合适的。与开启服务对应的方法
是stopUpdatingLocation方法,它的调用是在视图控制器的viewWillDisappear:方法中调用的,代码如下:
-&(void)viewWillDisappear:(BOOL)animated&&&&&&&&&&&&&&{&&&&&&&&&&&&&&[super&viewWillDisappear:animated];&&&&&&&&&&&&&&&&&&&&&&&&&&[_locationManager&stopUpdatingLocation];&&&&&&&&&&&&&&}&&&
viewWillDisappear:在视图消失(应用退到后台)时调用,能够保证最及时地关闭定位服务,这是负责
任的做法。在iOS&6之后请求有所变化,定位服务应用退入台后可以延迟更新位置信息,其中
allowDeferredLocationUpdatesUntilTraveled:timeout:方法可以设置延迟更新,从而使得应用在后台不再
更新位置信息。关闭延迟更新使用disallowDeferredLocationUpdates方法实现。此外,在iOS&6之后新增
pausesLocationUpdatesAutomatically属性,它能设定自动暂停位置更新,定位服务的开启和暂停管理权交给系统,这样会更
加合理和简单。
一旦定位服务开启,并设置好了CLLocationManager委托属性delegate后,当用户设备移动到达过滤距离时,就会回调委托方法,与定位服务有关的方法有两个:
locationManager:didUpdateLocations:&定位成功,是iOS&6新方法,替代之前的locationManager:didUpdateToLocation:fromLocation:方法;
locationManager:didFailWithError:&定位失败;
实现CLLocationManager委托代码如下:
#pragma&mark&Core&Location委托方法用于实现位置的更新&&&&-&(void)locationManager:(CLLocationManager&*)manager&didUpdateLocations:(NSArray&*)locations&&&&&&&&&&&&&&{&&&&&&&&&&&&&&CLLocation&*&currLocation&=&[locations&lastObject];&①&&&&&&&&&&&&&&_txtLat.text&=&[NSString&stringWithFormat:@&%3.5f&,&&&&&&&&&&&&&&currLocation.coordinate.latitude];&&②&&&&&&&&&&&&&&_txtLng.text&=&[NSString&stringWithFormat:@&%3.5f&,&&&&&&&&&&&&&&currLocation.coordinate.longitude];&&③&&&&&&&&&&&&&&_txtAlt.text&=&[NSString&stringWithFormat:@&%3.5f&,&&&&&&&&&&&&&&currLocation.altitude];&&④&&&&&&&&&&&&&&}&&&&-&(void)locationManager:(CLLocationManager&*)manager&didFailWithError:(NSError&*)error&&&&&&&&&&&&&&{&&&&&&&&&&&&&&NSLog(@&error:&%@&,error);&&&&&&&&&&&&&&}&&&
在locationManager:didUpdateLocations:方法中参数locations是位置变
化的集合,它按照时间变化的顺序存放。如果想获得当前设备的位置,可以使用第①行的[locations&lastObject]语句获得集合中最后一个
元素,它就是设备当前位置了。从集合中返回的对象类型是CLLocation,CLLocation封装了位置、高度等信息。在上面代码中我们使用了它的
两个属性:altitude和coordinate,altitude属性是高度值,coordinate是封装了经度和纬度的结构体
CLLocationCoordinate2D,CLLocationCoordinate2D定义如下:
typedef&struct&{&&&&&&&&&&&&&&CLLocationDegrees&&&&&&&&&&&&&&CLLocationDegrees&&&&&&&&&&&&&&}&CLLocationCoordinate2D;&&&
其中latitude为经度信息,longitude为纬度信息,它们都是CLLocationDegrees类型,CLLocationDegrees是使用typedef定义的double类型。
第 ②行代码中的newLocation.coordinate.latitude表达式是获得设备当前的纬度,第③行代码中的
newLocation.coordinate.longitude表达式是获得设备当前的纬度,而获得高度可以使用第④行
newLocation.altitude表达式直接获得。【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点头条头条聚焦头条
24H热文一周话题本月最赞
讲师:126135人学习过
讲师:108833人学习过
讲师:15524人学习过
精选博文论坛热帖下载排行
网络和计算机安全问题已经成为政府、企业必须面对的现实问题。应对安全威胁的途径之一就是采用渗透测试的方法模拟黑客的攻击,找出网络和计...
订阅51CTO邮刊

我要回帖

更多关于 苹果审核团队电话 的文章

 

随机推荐