Bagikan melalui


enumerasi LOCATION_REPORT_STATUS (locationapi.h)

[API Lokasi Win32 tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya. Sebagai gantinya, gunakan API Windows.Devices.Geolocation . ]

Menentukan kemungkinan status untuk laporan baru dari jenis laporan tertentu.

Sintaks

typedef enum LOCATION_REPORT_STATUS {
  REPORT_NOT_SUPPORTED = 0,
  REPORT_ERROR = 1,
  REPORT_ACCESS_DENIED = 2,
  REPORT_INITIALIZING = 3,
  REPORT_RUNNING = 4
} ;

Konstanta

 
REPORT_NOT_SUPPORTED
Nilai: 0
Jenis laporan yang diminta tidak didukung oleh API. Tidak ada penyedia lokasi dari jenis yang diminta yang diinstal.
REPORT_ERROR
Nilai: 1
Terjadi kesalahan saat membuat laporan, atau penyedia lokasi untuk jenis yang diminta tidak dapat memberikan data apa pun. Penyedia lokasi mungkin saat ini tidak tersedia, atau penyedia lokasi tidak dapat memperoleh data apa pun. Misalnya, status ini dapat terjadi ketika sensor GPS berada di dalam ruangan dan tidak ada satelit yang melihat.
REPORT_ACCESS_DENIED
Nilai: 2
Tidak ada izin yang diberikan untuk mengakses tipe laporan ini. Panggil ILocation::RequestPermissions.
REPORT_INITIALIZING
Nilai: 3
Laporan sedang diinisialisasi.
REPORT_RUNNING
Nilai: 4
Laporan sedang berjalan. Data lokasi baru untuk jenis laporan yang diminta tersedia.

Keterangan

Nilai-nilai ini mewakili status untuk laporan baru. Laporan terbaru tetap tersedia melalui ILocation::GetReport, terlepas dari status yang dilaporkan. Jika statusnya REPORT_RUNNING, data dalam laporan baru. Jika tidak, ILocation::GetReport menyediakan data cache jika data cache tersedia.

Contoh

Contoh kode berikut menunjukkan cara mengambil nilai LOCATION_REPORT_STATUS dari 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");
        }
    }

Kode berikut adalah contoh implementasi fungsi panggilan balik ILocationEvents::OnStatusChanged. Implementasi ini mencetak pesan ketika ada perubahan status laporan lintang/bujur.

// 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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop],Windows 7
Server minimum yang didukung Tidak ada yang didukung
Header locationapi.h