从onActivityResult调用时,getLastLocation返回null

时间:2017-01-12 00:12:21

标签: android location google-play-services activity-lifecycle

我正在使用GooglePlayServices位置API,并且它运行正常。 (所有必需的权限都已授予应用程序。)

我到处执行这段代码的和平:

#include "stdafx.h"

#pragma once  

#define MYDLLLIBRARY_API extern "C" __declspec(dllexport)   

MYLIBRARY_API DWORD WINAPI MyDllFunction(char * dirname);

DWORD WINAPI MyDllFunction(char * dirName){
    return someFunction(dirName);
}

void getFileNames(char * workingDir){

    HANDLE hFind;
    WIN32_FIND_DATAA data;
    char nextfilename[260];
    sprintf(nextfilename, "%s*.jpg", workingDir);
    hFind = FindFirstFileA(nextfilename, &data);
    if (hFind != INVALID_HANDLE_VALUE) {
        do {
            if (strlen(data.cFileName) < 3) continue;
            char tmp[260];
            sprintf(tmp, "%s%s",workingDir, data.cFileName);
            filenames.push_back(tmp);
        } while (FindNextFileA(hFind, &data));
        FindClose(hFind);
    } else{

        exit(0);
    }
}

int MyDllFunction(char* workingDir)
{
    ...
    getFileNames(workingDir);
    ...
}

我获取当前位置...除了一种情况:当它从LocationServices.FusedLocationApi.getLastLocation(googleApiClient); 挂钩调用时,在这种情况下它返回null。

这是API的预期行为吗?我错过了什么?

这不是this问题的重复。正如我所提到的,只有从onActivityResult挂钩查询位置时才会出现此行为。一切都像其他地方的魅力一样。

0 个答案:

没有答案