模拟定位,修改手机定位,钉钉打卡(iOS、安卓)

兴趣是最好的老师,这句话一点没错,先从感兴趣的来吧。

模拟定位,当时倒腾这个让我第一次感觉到程序猿的骄傲与开心,能让自己获利,无疑是最有价值的。

这个也是借鉴别人的,不过能够找到方法并学以致用也算是收获咯,搜集整理,本身我理解的写程序就是copy代码的过程,组合成什么样就各显神通了。

翻了翻记这个笔记的时间:2018年11月23日,好久远,“只记录不回顾”的诟病大概是从上学时候就养成了,如同考试时候老觉得自己本子上记过这个知识点,但仅仅是记录了。。。没什么卵用。。。🙃😂🤣。。。

温故而知新,嗯,有点道理。

下面罗列下步骤咯,安利给过好几个小伙伴,笔记记了一大堆,却没想过写博客,大写的服。

毕竟我是做iOS开发的,顺序嘛就iOS、安卓一个个来了(当时想要也给用安卓手机的朋友们福利来着,亦研究了一番)。

一、iOS(mac、数据线一根、苹果手机、xcode):

连接真机运行代码,此举将修改手机定位,直接拔线可保留该定位,使用其他带有地图定位软件均显示此定位,可重启手机恢复定位(此定位保留时间不固定,使用其他定位软件可能导致此定位失效,如不常用其它定位软件,亲测可保留一周+)。

二、安卓(任意系统电脑一台、模拟器);

一、iOS(mac、数据线一根、iphone、xcode):

github地址:https://github.com/xiaopangzai/SimulatorLocation

1、新建一项目,新建gpx文件,修改其中经纬度,经纬度可使用高德开放平台、百度拾取坐标:

拾取坐标(经验证百度比较精准,可自行对比参考):

百度:http://api.map.baidu.com/lbsapi/getpoint/index.html

高德开放平台:https://lbs.amap.com/console/show/picker

2、ViewController.m导入定位相关代码,以打印相关定位信息,验证是否准确:

#import "ViewController.h"

#import "SSYLocationChanged.h"

@interface ViewController ()<CLLocationManagerDelegate>

@property (nonatomic, strong)CLLocationManager *locationManager;

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];


    _locationManager =[[CLLocationManager alloc]init];

    _locationManager.delegate =self;

    //设置定位经准

    _locationManager.desiredAccuracy =kCLLocationAccuracyNearestTenMeters;

    [_locationManager requestWhenInUseAuthorization];//否则,ios10不弹定位框

    _locationManager.distanceFilter =10.0f;

    //开始定位

    [_locationManager startUpdatingLocation];


    // Do any additional setup after loading the view.

}

//定位代理经纬度回调

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{

    CLLocation *newLocation =locations[0];

    CLLocationCoordinate2D oCoordinate =newLocation.coordinate;

    [_locationManager stopUpdatingLocation];


    NSLog(@"经度------%f\n------纬度%f",oCoordinate.longitude,oCoordinate.latitude);

    //创建地理位置解码编码器对象

    CLGeocoder *geoCoder =[[CLGeocoder alloc]init];

    [geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {

        for (CLPlacemark *place in placemarks) {

            NSLog(@"城市-----%@",place.locality);

        }

    }];

}

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{

    if ([error code] == kCLErrorDenied){

        //访问被拒绝

        NSLog(@"访问被拒绝");

    }

    if ([error code] == kCLErrorLocationUnknown) {

        //无法获取位置信息

        NSLog(@"无法获取位置信息");

    }

}

@end

3、因上一步骤涉及定位,遂需设置info.plist相关权限:

4、模拟器定位选择所创建的Location文件:

5、连接真机运行即可,此举将修改手机定位,直接拔线可保留该定位,使用其他带有地图定位软件均显示此定位,可重启手机恢复定位(此定位保留时间不固定,使用其他定位软件可能导致此定位失效,如不常用其它定位软件,亲测可保留一周+);

二、安卓(任意系统电脑一台、模拟器):

1、下载相应系统版本的夜神模拟器(以mac系统为例):http://www.itmop.com/downinfo/259093.html

2、打开模拟器,找到左上角虚拟定位图标,选择模拟位置所使用的地图,输入模拟位置的经纬度,点击“go”,地图即可显示该位置,点击右下角的“定位到这里”,定位工具下方显示“已定位”,即表示模拟器成功模拟地点,这时可以点击右上角“关闭”按钮。

下载钉钉,登录,打卡界面即展示该定位。

(因模拟器打开失败,暂无截图,可按步骤自行尝试)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先要实现地图、导航功能,就需要我们先熟悉定位功能,在iOS中通过Core Location框架进行定位操作。Co...
    嘉09阅读 717评论 0 0
  • 出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 现在很多社交、...
    JJO阅读 4,165评论 4 19
  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 现在很多...
    大崔老师阅读 3,314评论 1 2
  • iOS 自带定位服务(原创) ps:本文粘贴自别处,只为学习记录~ 定位服务 iOS 7 提供了4种不同的途径进行...
    西门淋雨阅读 5,962评论 0 3
  • 想写这个是突然而来的灵感,源自我对我好朋友的心疼,突然的不舒服,上吐下泻,被难受憋的通红的脸,不自觉的泪水,以...
    桃淘逃阅读 179评论 0 1