Unity3d的Input.location在ios8以上版本不能正常工作的解决方案

最近发现以前能正常工作的定位功能不能正常工作了(擦,在ios8之后就不能正常工作了,现在都到ios9了,可见项目做了有些日子了),多方验证与相关资料的搜索,现将解决方案分享给大家。

主要是ios8之后CLLocationManager的用法有了变化,

首先在unity3d倒出来的Xcode工程中,找到iPhone_Sensors.mm文件,一般在class目录下,找到void LocationService::StartUpdatingLocation()方法,在[locationManager startUpdatingLocation];前面加上如下代码:

if ([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0) {
            [locationManager requestWhenInUseAuthorization];
        }
如果我们的app需求在后台也需要获取位置信息,则用[locationManager  requestAlwaysAuthorization ];

然后在info.plist里添加对应key:NSLocationWhenInUseUsageDescription,value是会在请求授权的提示框中显示的内容,如果是requestAlwaysAuthorization,则对应的key为NSLocationAlwaysUsageDescription。

OK,现在unity3d的Input.location的功能已可以正常使用了。

具体原因可参考:http://www.cocoachina.com/bbs/read.php?tid-237203.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值