iOS 8 Using external GPS

I am currently working on an external bluetooth GPS (Garmin Glo)(MFi approved).


Once it is get connected. I tried to use EAAccessory framework to read the NMEA data, I only get 15 bytes incoming data then no more stream data come in.


I am wondering if iOS already forwarded all the data to the CLLocationManager?


If the external GPS is connected, the location data I get via CLLocationManager is from internal GPS or external GPS?


I would appreciate if someone can explain me the logic behind. Thanks!

Replies

Unless the external device has it's own SDK that you can integrate into the app so that you work with the MFI protocols directly, you are going to get data that runs through CoreLocation. The position and altitude will be from the external device if connected, or from the internal hardware if no external device is connected. However, accuracy data will always be from the internal hardware only, regardless of any external devices. CoreLocation is not currently setup to grab anything other than position and altitude from external devices.

Some GPS device manufacturers offer an SDK that lets you work with the device as an MFI accessory using the EA framework. Then you can get whatever data the device puts out, including accuracy and much more. Your app will need to be pre-approved by the device manufacturer in order to pass Apple review.