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.
Penting
Metadata perangkat tidak digunakan lagi dan akan dihapus dalam rilis Windows mendatang. Untuk informasi tentang penggantian fungsionalitas ini, lihat Metadata Kontainer Paket Driver.
Aplikasi UWP Anda dapat menyinkronkan data di perangkat periferal Anda. Jika aplikasi Anda dikaitkan dengan metadata perangkat, aplikasi perangkat UWP tersebut juga dapat melakukan pembaruan perangkat, seperti pembaruan firmware. Artikel ini menjelaskan cara membuat tugas latar belakang perangkat yang menggunakan DeviceUseTrigger atau DeviceServicingTrigger. Agen latar belakang perangkat yang menggunakan pemicu ini tunduk pada kebijakan yang memastikan persetujuan pengguna dan membantu mempertahankan masa pakai baterai saat perangkat sedang disinkronkan dan diperbarui. Untuk informasi selengkapnya tentang tugas latar belakang perangkat, lihat Sinkronisasi dan pembaruan perangkat untuk aplikasi perangkat UWP.
Artikel ini sesuai dengan sampel perangkat USB Kustom. Sampel perangkat USB Kustom menunjukkan tugas latar belakang yang melakukan sinkronisasi perangkat dengan DeviceUseTrigger.
Meskipun tugas latar belakang perangkat dalam sampel perangkat USB Kustom menampilkan DeviceUseTrigger, semuanya yang dibahas dalam artikel ini juga dapat diterapkan ke tugas latar belakang perangkat yang menggunakan DeviceServicingTrigger. Satu-satunya perbedaan antara menggunakan dua pemicu adalah pemeriksaan kebijakan yang dibuat oleh Windows.
Manifest aplikasi
Untuk menggunakan tugas latar belakang perangkat, aplikasi Anda harus mendeklarasikannya di file manifes aplikasi aplikasi latar depan Anda, seperti yang dilakukan untuk tugas latar belakang yang dipicu sistem. Untuk informasi selengkapnya, lihat Sinkronisasi dan pembaruan perangkat untuk aplikasi perangkat UWP.
Pada contoh ini dari berkas manifest paket aplikasi, DeviceLibrary.SyncContent adalah titik awal akses dari aplikasi utama. DeviceLibrary.SyncContent adalah titik masuk untuk tugas latar belakang yang menggunakan DeviceUseTrigger.
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="DeviceLibrary.SyncContent">
<BackgroundTasks>
<m2:Task Type="deviceUse" />
</BackgroundTasks>
</Extension>
</Extensions>
Tugas latar belakang perangkat
Kelas tugas latar belakang perangkat mengimplementasikan IBackgroundTask antarmuka dan berisi kode aktual yang Anda buat untuk menyinkronkan atau memperbarui perangkat periferal Anda. Kelas tugas latar belakang dijalankan saat tugas latar belakang dipicu dan dari titik masuk yang disediakan dalam manifes aplikasi Anda.
Kelas latar belakang perangkat dalam sampel perangkat USB Kustom berisi kode untuk melakukan sinkronisasi ke perangkat USB menggunakan tugas latar belakang DeviceUseTrigger . Untuk detail lengkapnya, unduh sampel. Untuk informasi selengkapnya tentang penerapan IBackgroundTask dan infrastruktur tugas latar belakang Windows, lihat Mendukung aplikasi Anda dengan tugas latar belakang.
Bagian utama dari tugas latar belakang perangkat dalam sampel perangkat USB Kustom meliputi:
Kelas
IoSyncBackgroundTaskmengimplementasikan antarmukaIBackgroundTaskyang diperlukan oleh infrastruktur tugas latar belakang Windows.Kelas
IoSyncBackgroundTaskmendapatkan instansDeviceUseDetailsyang diteruskan ke kelas dalam metode Jalankan kelasIoSyncBackgroundTask. Kelas ini menggunakan instans tersebut untuk melaporkan kemajuan kembali ke aplikasi Microsoft Store dan mendaftar untuk acara pembatalan.Metode Run dari kelas
IoSyncBackgroundTaskjuga memanggil metode pribadiOpenDevicedanWriteToDeviceAsyncyang mengimplementasikan kode sinkronisasi perangkat latar belakang.
Aplikasi latar depan
Aplikasi latar depan dalam sampel perangkat USB Kustom mendaftar dan memicu tugas latar belakang perangkat yang menggunakan DeviceUseTrigger. Bagian ini memberikan gambaran umum tentang langkah-langkah yang akan diambil aplikasi latar depan Anda untuk mendaftar, memicu, dan menangani kemajuan untuk tugas latar belakang perangkat.
Aplikasi latar depan dalam sampel perangkat USB Kustom melakukan langkah-langkah berikut untuk menggunakan tugas latar belakang perangkat:
Membuat DeviceUseTrigger dan
BackgroundTaskRegistrationobjek baru.Memeriksa untuk melihat apakah ada tugas latar belakang yang sebelumnya didaftarkan oleh aplikasi ini dan membatalkannya dengan memanggil metode BackgroundTaskRegistration.Unregister pada tugas.
Metode privat
SetupBackgroundTaskmendaftarkan tugas latar belakang yang akan disinkronkan dengan perangkat. MetodeSetupBackgroundTaskini dipanggil dariSyncWithDeviceAsyncmetode pada langkah berikutnya.Menginisialisasi
DeviceUseTriggerdan menyimpannya untuk digunakan nanti.Membuat objek baru
BackgroundTaskBuilderdan menggunakan properti dan metode ,NameTaskEntryPointdanSetTriggeruntuk mendaftarkan objek aplikasiDeviceUseTriggerdan nama tugas latar belakang. PropertiBackgroundTaskBuilderobjekTaskEntryPointdiatur ke nama lengkap kelas tugas latar belakang yang akan dijalankan saat tugas latar belakang dipicu.Mendaftar untuk penyelesaian dan kemajuan peristiwa dari tugas latar belakang sehingga aplikasi latar depan dapat memberikan penyelesaian dan pembaruan kemajuan kepada pengguna.
Metode privat
SyncWithDeviceAsyncmendaftarkan tugas latar belakang yang akan disinkronkan dengan perangkat dan memulai sinkronisasi latar belakang.Memanggil metode
SetupBackgroundTaskdari langkah sebelumnya dan mendaftarkan tugas latar belakang yang akan disinkronkan dengan perangkat.Memanggil metode privat
StartSyncBackgroundTaskAsyncyang memulai tugas latar belakang. Metode tersebut menutup pegangan aplikasi ke perangkat untuk memastikan bahwa tugas latar belakang dapat membuka perangkat saat tugas tersebut dimulai.Penting
Tugas latar belakang perlu membuka perangkat untuk melakukan pembaruan sehingga aplikasi latar depan harus menutup koneksinya ke perangkat sebelum memanggil
RequestAsync.
Selanjutnya, metode
StartSyncBackgroundTaskAsyncmemanggil metodeDeviceUseTriggerpada objekRequestAsyncyang memulai dan memicu tugas latar belakang, serta mengembalikan objekDeviceTriggerResultsdariRequestAsyncyang digunakan untuk menentukan apakah tugas latar belakang berhasil dimulai.Penting
Pemeriksaan Windows untuk memastikan bahwa semua pemeriksaan kebijakan inisiasi tugas yang diperlukan telah selesai. Jika semua pemeriksaan kebijakan selesai, operasi pembaruan sekarang berjalan sebagai tugas latar belakang di luar aplikasi latar depan, memungkinkan aplikasi ditangguhkan dengan aman saat operasi sedang berlangsung. Windows juga akan memberlakukan persyaratan runtime apa pun dan membatalkan tugas latar belakang jika persyaratan tersebut tidak lagi terpenuhi.
Akhirnya, metode
SyncWithDeviceAsyncmenggunakan objekDeviceTriggerResultsyang dikembalikan dariStartSyncBackgroundTaskAsyncuntuk menentukan apakah tugas latar belakang dimulai dengan sukses. Pernyataan pengalihan digunakan untuk memeriksa hasil dariDeviceTriggerResultsAplikasi latar depan mengimplementasikan penanganan aktivitas privat
OnSyncWithDeviceProgressyang akan memperbarui UI aplikasi dengan kemajuan dari tugas latar belakang perangkat.Aplikasi latar depan mengimplementasikan penanganan aktivitas privat
OnSyncWithDeviceCompleteduntuk menangani transisi dari tugas latar belakang ke aplikasi latar depan ketika tugas latar belakang telah selesai.Menggunakan metode
CheckResultsdari objekBackgroundTaskCompletedEventArgsuntuk menentukan apakah ada pengecualian yang dilemparkan oleh tugas latar belakang.Aplikasi latar depan membuka kembali perangkat untuk digunakan oleh aplikasi sekarang setelah tugas latar belakang selesai dan memperbarui UI untuk memberi tahu pengguna.
Aplikasi latar depan mengimplementasikan penangan aktivitas klik tombol privat dari UI untuk memulai dan membatalkan tugas latar belakang.
Penangan acara privat
Sync_Clickmemanggil metodeSyncWithDeviceAsyncyang dijelaskan pada langkah-langkah sebelumnya.Pengendali peristiwa privat
CancelSync_Clickmemanggil metode privatCancelSyncWithDeviceuntuk membatalkan tugas latar belakang.
Metode privat
CancelSyncWithDevicemembatalkan pendaftaran dan membatalkan sinkronisasi perangkat aktif apa pun sehingga perangkat dapat dibuka kembali dengan menggunakan metode BackgroundTaskRegistration.Unregister .