Bagikan melalui


ILocation::Metode RequestPermissions (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 . ]

Membuka kotak dialog sistem untuk meminta izin pengguna untuk mengaktifkan perangkat lokasi.

Sintaks

HRESULT RequestPermissions(
  [in] HWND  hParent,
  [in] IID   *pReportTypes,
  [in] ULONG count,
       BOOL  fModal
);

Parameter

[in] hParent

HWND untuk jendela induk. Parameter ini bersifat opsional. Di Windows 8 dialog selalu modal jika hParent disediakan, dan tidak modal jika hParent adalah NULL.

[in] pReportTypes

Penunjuk ke array IID . Array ini harus berisi ID antarmuka untuk semua jenis laporan yang Anda minta izinnya. ID antarmuka dari jenis laporan yang valid IID_ILatLongReport dan IID_ICivicAddressReport. Jumlah ID harus cocok dengan nilai yang ditentukan melalui parameter hitungan .

[in] count

Jumlah ID antarmuka yang terkandung dalam pReportTypes.

fModal

Parameter ini tidak digunakan.

Menampilkan nilai

Metode ini dapat mengembalikan salah satu nilai ini.

Tabel berikut ini menjelaskan kode pengembalian saat panggilan sinkron.

Menampilkan kode Deskripsi
S_OK
Layanan lokasi yang diaktifkan pengguna. Metode berhasil.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
Platform lokasi dinonaktifkan. Administrator menonaktifkan platform lokasi.
HRESULT_FROM_WIN32(ERROR_CANCELLED)
Pengguna tidak mengaktifkan akses ke layanan lokasi atau membatalkan kotak dialog.
 

Tabel berikut ini menjelaskan kode pengembalian saat panggilan tidak sinkron.

Menampilkan kode Deskripsi
S_OK
Pengguna mengaktifkan akses ke layanan lokasi. Metode berhasil.
E_INVALIDARG
Argumen tidak valid.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
Platform lokasi dinonaktifkan. Administrator menonaktifkan platform lokasi. Kotak dialog tidak diperlihatkan.

Keterangan

Jika pengguna memilih untuk tidak mengaktifkan layanan lokasi, Windows tidak akan menampilkan kotak dialog izin lagi.

Catatan Panggilan asinkron berulang ke RequestPermissions akan menampilkan beberapa instans kotak dialog Aktifkan layanan lokasi dan berpotensi membanjiri layar dengan kotak dialog, menghasilkan pengalaman pengguna yang buruk. Jika Anda berpikir bahwa sensor lokasi lain mungkin diinstal setelah panggilan pertama Anda ke RequestPermissions, memerlukan panggilan lain ke RequestPermissions, Anda harus memanggil RequestPermissions secara sinkron atau menunggu sampai semua sensor lokasi diinstal untuk melakukan panggilan asinkron.
 
Catatan Melakukan panggilan sinkron dari utas antarmuka pengguna (UI) aplikasi Windows dapat memblokir utas UI dan membuat aplikasi kurang responsif. Untuk mencegah hal ini, jangan melakukan panggilan sinkron ke RequestPermissions dari utas UI.
 
Catatan Jika aplikasi yang berjalan dalam mode terproteksi, seperti Objek Pembantu Browser (BHO) untuk Internet Explorer, memanggil RequestPermissions, dan pengguna memilih untuk tidak mengaktifkan lokasi menggunakan kotak dialog, penyedia lokasi tidak akan diaktifkan, tetapi Windows akan menampilkan kotak dialog lagi jika RequestPermissions dipanggil lagi oleh pengguna yang sama.
 

Contoh

Contoh berikut menunjukkan cara memanggil RequestPermissions untuk meminta izin untuk laporan lintang/bujur.

             // Array of report types of interest. Other ones include IID_ICivicAddressReport
            IID REPORT_TYPES[] = { IID_ILatLongReport };

            // Request permissions for this user account to receive location data for all the
            // types defined in REPORT_TYPES (which is currently just one report type)
            // The last parameter is not used.
            if (FAILED(spLocation->RequestPermissions(
                  NULL, 
                  REPORT_TYPES, 
                  ARRAYSIZE(REPORT_TYPES), 
                  TRUE))) 
            {
                wprintf(L"Warning: Unable to request permissions.\n");
            }


Persyaratan

   
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop],Windows 7
Server minimum yang didukung Tidak ada yang didukung
Target Platform Windows
Header locationapi.h
DLL LocationAPI.dll