0

Androidハードウェア抽象化レイヤーを使用して、外部デバイスではなく、携帯電話のgpsデバイス(Qualcommと信じています)からの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 を取得するにはネイティブ コードを使用する必要があるため、NMEA ストリームを読み取ることができるデバイスを作成するアプリ (例: /dev/ttyGPS) がない限り、SDK の回答は探していません。

助けてくれてありがとう。

4

1 に答える 1

0

このリンクで:

Android : 2012 年 1 月 1 日から 1 日前の GP 日付を示す Samsung Galaxy Tabs および Android 2.2 デバイス

NMEA メッセージを直接読み取ることで解決される、GPS 日付の問題の解決策があります。それがあなたを助けることができるかどうか見てください。

于 2012-10-17T15:33:01.973 に答える