enumeração LOCATION_REPORT_STATUS (locationapi.h)
[A API de Localização do Win32 está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. Em vez disso, use a API Windows.Devices.Geolocation . ]
Define possíveis status para novos relatórios de um tipo de relatório específico.
Syntax
typedef enum LOCATION_REPORT_STATUS {
REPORT_NOT_SUPPORTED = 0,
REPORT_ERROR = 1,
REPORT_ACCESS_DENIED = 2,
REPORT_INITIALIZING = 3,
REPORT_RUNNING = 4
} ;
Constantes
REPORT_NOT_SUPPORTED Valor: 0 Não há suporte para o tipo de relatório solicitado pela API. Nenhum provedor de localização do tipo solicitado está instalado. |
REPORT_ERROR Valor: 1 Houve um erro ao criar o relatório ou os provedores de localização para o tipo solicitado não podem fornecer nenhum dado. Os provedores de localização podem estar indisponíveis no momento ou os provedores de localização não podem obter dados. Por exemplo, esse estado pode ocorrer quando um sensor GPS está dentro de casa e nenhum satélite está em exibição. |
REPORT_ACCESS_DENIED Valor: 2 Nenhuma permissão foi concedida para acessar esse tipo de relatório. Chame ILocation::RequestPermissions. |
REPORT_INITIALIZING Valor: 3 O relatório está sendo inicializado. |
REPORT_RUNNING Valor: 4 O relatório está em execução. Novos dados de localização para o tipo de relatório solicitado estão disponíveis. |
Comentários
Esses valores representam status para novos relatórios. Os relatórios mais recentes permanecem disponíveis por meio de ILocation::GetReport, independentemente da status relatada. Se o status for REPORT_RUNNING, os dados em um relatório serão novos. Caso contrário, ILocation::GetReport fornecerá dados armazenados em cache se os dados armazenados em cache estiverem disponíveis.
Exemplos
O exemplo de código a seguir demonstra como recuperar os valores de LOCATION_REPORT_STATUS de ILocation::GetReportStatus.
// Get the status of this report type
if (SUCCEEDED(spLocation->GetReportStatus(IID_ILatLongReport, &status)))
{
bool fIsNotRunning = true;
switch (status)
{
case REPORT_RUNNING:
// If the status for the current report is running,
// then do not print any additional message.
// Otherwise, print a message indicating that reports may contain cached data.
fIsNotRunning = false;
break;
case REPORT_NOT_SUPPORTED:
wprintf(L"\nThere is no sensor installed for this report type.\n");
break;
case REPORT_ERROR:
wprintf(L"\nReport error.\n");
break;
case REPORT_ACCESS_DENIED:
wprintf(L"\nAccess denied to reports.\n");
break;
case REPORT_INITIALIZING:
wprintf(L"\nReport is initializing.\n");
break;
}
if (true == fIsNotRunning)
{
wprintf(L"Location reports returned from GetReport contain cached data.\n");
}
}
O código a seguir é uma implementação de exemplo da função de retorno de chamada ILocationEvents::OnStatusChanged. Essa implementação imprime mensagens quando há uma alteração no status de relatórios de latitude/longitude.
// This is called when the status of a report type changes.
// The LOCATION_REPORT_STATUS enumeration is defined in LocApi.h in the SDK
STDMETHODIMP CLocationEvents::OnStatusChanged(REFIID reportType, LOCATION_REPORT_STATUS status)
{
if (IID_ILatLongReport == reportType)
{
switch (status)
{
case REPORT_NOT_SUPPORTED:
wprintf(L"\nNo devices detected.\n");
break;
case REPORT_ERROR:
wprintf(L"\nReport error.\n");
break;
case REPORT_ACCESS_DENIED:
wprintf(L"\nAccess denied to reports.\n");
break;
case REPORT_INITIALIZING:
wprintf(L"\nReport is initializing.\n");
break;
case REPORT_RUNNING:
wprintf(L"\nRunning.\n");
break;
}
}
else if (IID_ICivicAddressReport == reportType)
{
}
return S_OK;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho], Windows 7 |
Servidor mínimo com suporte | Nenhum compatível |
Cabeçalho | locationapi.h |