Menghitung perangkat melalui jaringan

Gunakan API Windows.Devices.Enumeration untuk menghitung perangkat melalui protokol nirkabel dan jaringan.

API penting

Menghitung perangkat melalui protokol jaringan atau nirkabel

Terkadang Anda perlu menghitung perangkat yang tidak terhubung secara lokal dan hanya dapat ditemukan melalui protokol nirkabel atau jaringan. Untuk melakukannya, API Windows.Devices.Enumeration memiliki tiga jenis objek perangkat yang berbeda: AssociationEndpoint (AEP), AssociationEndpointContainer (AEP Container), dan AssociationEndpointService (AEP Service). Sebagai grup, ini disebut sebagai AEP atau objek AEP.

Beberapa API perangkat menyediakan string pemilih yang dapat Anda gunakan untuk menghitung objek AEP yang tersedia. Ini dapat mencakup kedua perangkat yang dipasangkan dan tidak dipasangkan dengan sistem. Beberapa perangkat mungkin tidak memerlukan pemasangan. API perangkat tersebut dapat mencoba memasangkan perangkat jika perlu dipasangkan sebelum berinteraksi dengannya. Wi-Fi Direct adalah contoh API yang mengikuti pola ini. Jika API perangkat tersebut tidak memasangkan perangkat secara otomatis, Anda dapat memasangkannya menggunakan objek DeviceInformationPairing yang tersedia dari DeviceInformation.Pairing.

Namun, mungkin ada kasus di mana Anda ingin menemukan perangkat anda sendiri secara manual tanpa menggunakan string pemilih yang telah ditentukan sebelumnya. Misalnya, Anda mungkin hanya perlu mengumpulkan informasi tentang perangkat AEP tanpa berinteraksi dengannya atau Anda mungkin ingin menemukan lebih banyak objek AEP daripada yang akan ditemukan dengan string pemilih yang telah ditentukan sebelumnya. Dalam hal ini, Anda akan membangun string pemilih Anda sendiri dan menggunakannya mengikuti instruksi di bawah Buat pemilih perangkat.

Saat Anda membangun pemilih Anda sendiri, sangat disarankan agar Anda membatasi cakupan enumerasi Anda ke protokol yang Anda minati. Misalnya, Anda tidak ingin memiliki pencarian radio Wi-Fi untuk perangkat Wi-Fi Direct jika Anda sangat tertarik dengan perangkat UPnP. Windows telah menentukan identitas untuk setiap protokol yang dapat Anda gunakan untuk mencakup enumerasi Anda. Tabel berikut mencantumkan jenis protokol dan pengidentifikasi.

Jenis protokol atau perangkat jaringan Id
UPnP (termasuk DIAL dan DLNA) {0e261de4-12f0-46e6-91ba-428607ccef64}
Layanan web pada perangkat (WSD) {782232aa-a2f9-4993-971b-aedc551346b0}
Wi-Fi Direct {0407d24e-53de-4c9a-9ba1-9ced54641188}
Penemuan layanan DNS (DNS-SD) {4526e8c1-8aac-4153-9b16-55e86ada0e54}
Titik layanan {d4bf61b3-442e-4ada-882d-fa7B70c832d9}
Pencetak jaringan (pencetak direktori aktif) {37aba761-2124-454c-8d82-c42962c2de2b}
Windows tersambung sekarang (WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
Dermaga WiGig {a277f3a5-8764-4f88-8045-4c5e962640b1}
Wi-Fi provisi untuk printer HP {c85ef710-f344-4792-bb6d-85a4346f1e69}
Bluetooth {e0cbf06c-cd8b-4647-bb8a-263b43f0f974}
Bluetooth LE {bb7bb05e-5972-42b5-94fc-76eaa7084d49}
Kamera Jaringan {b8238652-b500-41eb-b4f3-4234f7f5ae99}

Contoh Advanced Query Syntax (AQS)

Setiap jenis AEP memiliki properti yang dapat Anda gunakan untuk membatasi enumerasi Anda ke protokol tertentu. Perlu diingat Bahwa Anda dapat menggunakan operator OR dalam filter AQS untuk menggabungkan beberapa protokol. Berikut adalah beberapa contoh string filter AQS yang menunjukkan cara mengkueri perangkat AEP.

Kueri AQS ini untuk semua objek UPnP AssociationEndpoint saat DeviceInformationKind diatur ke AsssociationEndpoint.

System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"

Kueri AQS ini untuk semua objek UPnP dan WSD AssociationEndpoint saat DeviceInformationKind diatur ke AsssociationEndpoint.

System.Devices.Aep.ProtocolId:="{782232aa-a2f9-4993-971b-aedc551346b0}" OR
System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"

Kueri AQS ini untuk semua objek UPnP AssociationEndpointService jika DeviceInformationKind diatur ke AsssociationEndpointService.

System.Devices.AepService.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"

AQS ini mengkueri objek AssociationEndpointContainer ketika DeviceInformationKind diatur ke AssociationEndpointContainer, tetapi hanya menemukannya dengan menghitung protokol UPnP. Biasanya, tidak akan berguna untuk menghitung kontainer yang hanya berasal dari satu protokol. Namun, ini mungkin berguna dengan membatasi filter Anda ke protokol di mana Anda tahu perangkat Anda dapat ditemukan.

System.Devices.AepContainer.ProtocolIds:~~"{0e261de4-12f0-46e6-91ba-428607ccef64}"