我目前正在与之合作,CLLocationManager并希望了解该设备的当前标题.到目前为止一切正常,功能已实现,现在我尝试打磨我的应用程序.
有一个角落案例,如果用户将关闭compass calibration用户设置标题,标题更新将不再发送到我的应用程序.在这种情况下,我想给用户一些反馈,他必须再次打开罗盘校准,否则我的应用程序将无法正常工作.
我发现,如果用户关闭了location services我的应用程序,我仍然会收到磁性标题.但是如果用户关闭"罗盘校准"设置,我将不再收到更新的标题.但是,如何通过CoreLocation框架确定"罗盘校准"被关闭?
" CLLocationManagerDelegate"给了我一个更新
- (void)locationManager:(CLLocationManager*)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
Run Code Online (Sandbox Code Playgroud)
方法.但状态仅指示"位置服务"是否为我的应用程序处于活动状态.
我也试图通过这个获得一些有效的信息
- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error
Run Code Online (Sandbox Code Playgroud)
delegate 方法,没有任何成功.
CoreLocation框架中是否有东西可以告诉我是否打开/关闭"罗盘校准"标志.
我对CoreAudio AudioSession框架有几个与几个蓝牙任务相关的问题,我希望有人可以帮助我解决这些问题,或者至少可以确认我的最新发现.usecase是一个导航应用程序,希望连接支持蓝牙的无线电,支持HFP和A2DP.我已经阅读了整个AudioSession编程指南,但我还有一些未解决的问题,特别是通过蓝牙使用音频输出.
蓝牙HFP音频输出(kAudioSessionOutputRoute_BluetoothHFP)仅在AudioSession设置kAudioSessionCategory_PlayAndRecord且您覆盖以下属性时才可用:kAudioSessionProperty_OverrideCategoryEnableBluetoothInput.这是真的?如果没有,我将如何通过MediaPlayback会话作为示例路由到kAudioSessionOutputRoute_BluetoothHFP路由.
使用类别kAudioSessionCategory_PlayAndRecord时,无法在后台模式下输出音频.因此,如果我在后台,我无法通过蓝牙HFP路线播放声音.这是真的?如果app在后台,有没有办法通过蓝牙HFP协议发送音频?
如果有可用的A2DP设备,我的音频路由将始终自动切换到kAudioSessionOutputRoute_BluetoothA2DP路由.如何防止此路线更改?另外,我如何指定我想要的输出路线.使用iOS5,可以通过kAudioSessionProperty_AudioRouteDescription标志查询所有这些路由目的地,但我不知道如何设置它,因为我想拥有它.是否有可能实现这一目标?
我希望你们中的一些人可以帮助我解决这些问题.这对我对CoreAudio的整体理解,特别是AudioSession框架,真的有帮助.
我正在努力解决以下问题,无法在Goolge Maps API文档或网络中找到任何解决方案,因此我将尝试在此处发布我的问题:
我使用谷歌静态街景图像API,您可以在其中传递长/纬或带邮政地址的字符串.在我的情况下,我总是使用字符串方法,在大多数情况下包含带有房屋号码的地址.我对返回图像的结果感到惊讶,在大多数情况下,图像完全朝向搜索地址的方向.
现在我想试试StreetViews的JavaScript API.通过long/lat值指定地址,它可以完美地使用唯一可用的位置接口.通过可选的pov参数,也可以指定标题.但是如果您想使用带有房屋号码的邮政地址初始化StreetView,那么您将丢失该API.唯一的方法是通过地理编码API将邮政地址地理编码为长/纬度值,但遗漏了标题信息.作为最终结果,在这种情况下,最初的StreetView图像完全不同.
我再次检查了Static StreetView Image API并找到了对标题成员的以下评论:
标题(可选):...如果未指定标题,将计算一个值,将摄像机从拍摄最近照片的位置指向指定位置.
我能在这做什么吗?如何找到制作照片的位置与我要找的位置之间的完美标题?似乎只有Google才能通过静态街景图像API的内部魔术来实现这一目标.
从昨天开始,Google Geocoder的GeoResult似乎为几何位置值重新标记了不同的标识符标记.在过去,他们使用long/lat值来表示他们的JSON中的Va/Ua标识符,如结果对象.经度标识符昨天从Va改为Ta.这对于任何Google请求结果都是常见的,该标识符会随着时间而改变吗?如果是这种情况,Google如何通知开发人员此类API更改?
在我的代码(Objective-C)中,我将借助JSON解析器解析这些标识符,以接收当前的long/lat值.因此,我必须坚持使用当前使用的这种标识符的表示法,因为JSON对象将被转换为数组或字典,后面的字典导航将通过例如[locationResult objectForKey:@"Va"]调用完成.
使用Google JavaScript API获得任何其他体验.否则,我必须在JavaScript中检查long/lat结果,然后将最终结果返回给我的Objective-C代码.但我仍然会优先选择将整个JSON结果对象返回到Objective-C代码并在那里解析它的方法.
问候
我将用我最新的调查更新我自己的问题:Google将频繁更改JSON对象的内部格式,今天他们再次更改它.因此,我必须通过在JSON解析器的帮助下解析结果来评估JavaScript方面的整个Geocoder结果,而不是Objectiv-C中的结果.对我来说很难过,但我认为坚持使用JavaScript API而不是原始结果会更安全.:-(
谢谢你的答案!