在root用户设备上使用libloc_api获取原始NMEA消息

时间:2012-10-17 13:06:26

标签: android android-ndk

我正在尝试使用android硬件抽象层来打印来自我手机的gps设备(我相信是高通)的NMEA消息,而不是外部设备。使用Android本机代码的所有示例似乎都是使用外部gps设备。在android qemu的情况下,模拟器指向一个文件描述符,它获取模拟的gps信息,这也不是我正在寻找的。我使用libloc_api创建了一个GpsInterface实例,但我不确定如何使用回调函数来获取NMEA消息。这是我用来获取gps界面的一段代码:

#include "hardware/gps.h"
#include "hardware/hardware.h" 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>    
static const GpsInterface* sGpsInterface = NULL;

int main() {

    int err = 0;
    size_t gps_size = 0;
    hw_module_t* module;

    err = hw_get_module(GPS_HARDWARE_MODULE_ID, (hw_module_t const**)&module);
    if (err == 0) {
        hw_device_t* device;
        err = module->methods->open(module, GPS_HARDWARE_MODULE_ID, &device);
        struct gps_device_t* gps_device = (struct gps_device_t *)device;
        sGpsInterface = gps_device->get_gps_interface(gps_device);
    }

    if (!sGpsInterface )
        printf("No Interface!\n");
    mod = module->name;
    printf("module name = %s\n", mod);

我必须使用本机代码来获取GPS,所以我不是在寻找SDK答案,除非有一个应用程序创建了一个我可以从中读取NMEA流的设备(例如/ dev / ttyGPS)

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在此链接上:

Android : Samsung Galaxy Tabs and Android 2.2 Devices Showing GPs date 1 Day Advance from 1st jan 2012

您可以通过直接阅读NMEA消息解决GPS日期问题。看看这对你有帮助。