Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
[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_SUPPORTEDNilai: 0 Jenis laporan yang diminta tidak didukung oleh API. Tidak ada penyedia lokasi dari jenis yang diminta yang diinstal. |
REPORT_ERRORNilai: 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_DENIEDNilai: 2 Tidak ada izin yang diberikan untuk mengakses tipe laporan ini. Panggil ILocation::RequestPermissions. |
REPORT_INITIALIZINGNilai: 3 Laporan sedang diinisialisasi. |
REPORT_RUNNINGNilai: 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 |