Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Cihaz meta verileri kullanım dışıdır ve windows'un gelecek bir sürümünde kaldırılacaktır. Bu işlevin değiştirilmesi hakkında bilgi için bkz . Sürücü Paketi Kapsayıcı Meta Verileri.
UWP uygulamanız, çevre biriminizdeki verileri senkronize etmek için cihaz arka plan görevini kullanabilir. Uygulamanız cihaz meta verileriyle ilişkiliyse, bu UWP cihaz uygulaması üretici yazılımı güncelleştirmeleri gibi cihaz güncelleştirmelerini gerçekleştirmek için bir cihaz arka plan aracısını da kullanabilir. Cihaz arka plan aracıları, kullanıcı onayı sağlayan ve cihazlar eşitlenirken ve güncelleştirilirken pil ömrünü korumaya yardımcı olan ilkelere tabidir.
Cihaz eşitleme ve güncelleştirme işlemlerini gerçekleştirmek için sırasıyla DeviceUseTrigger ve DeviceServicingTrigger kullanan bir cihaz arka plan görevi oluşturun. Özel USB cihaz örneğiyle cihaz arka plan görevi oluşturmayı öğrenmek için bkz. Cihaz arka plan görevi oluşturma.
Windows Çalışma Zamanı cihaz API'leri için cihaz meta verileri gerekmez. Bu, uygulamanızın bunları kullanabilmesi için bir UWP cihaz uygulaması olması gerekmeyecek anlamına gelir. UWP uygulamaları USB, İnsan Arabirim Cihazları (HID), Bluetooth cihazları ve daha fazlasına erişmek için bu API'leri kullanabilir. Daha fazla bilgi için bkz. cihaz entegrasyonu.
Cihaz arka plan görevine genel bakış
Kullanıcılar UWP uygulamanızı ekran dışına taşıdığında, Windows uygulamanızı bellek içinde askıya alır ve başka bir uygulamanın ön plana sahip olması sağlar. Bir uygulama askıya alındığında bellekte yerleşik olarak bulunur ancak Windows uygulamayı çalıştırmayı durdurur.
Eşitleme ve güncelleştirme gibi devam eden tüm cihaz işlemleri, cihaz arka plan görevinin yardımı olmadan kesintiye uğrar. Windows bu sorunu çözmek için iki arka plan görev tetikleyicisi sağlar: DeviceUseTrigger ve DeviceServicingTrigger. Bu tetikleyiciler, uygulamanız askıya alınmış olsa bile uygulamanızın arka planda güvenli bir şekilde çevre birimi cihazınızda uzun süre çalışan eşitleme ve güncelleştirme işlemleri gerçekleştirmesine olanak sağlar. Uygulama askıya alma hakkında daha fazla bilgi için bkz. Başlatma, devam etme ve çoklu görev oluşturma.
| Arka plan görev tetikleyicisi | Cihaz meta verilerini gerektirir | Açıklama |
|---|---|---|
| DeviceUseTrigger | Hayı | Uygulamanız askıya alındığında, çevre birimi cihazınızla veya cihazınızdan uzun süreli senkronizasyon işlemlerini etkinleştirir. Cihazınızı arka planda eşitlemek için kullanıcınızın uygulamanız tarafından arka plan eşitlemesini onaylaması gerekir. Cihazınızın etkin G/Ç ile ve izin verilen en fazla 10 dakika arka plan etkinliğiyle bilgisayara bağlı veya bu bilgisayarla eşleştirilmiş olması gerekir. İlke uygulama hakkında daha fazla ayrıntı bu makalenin devamında açıklanmıştır. |
| CihazServisTetikleyici | Evet | Uygulamanız askıya alınırken ayarlar aktarımları veya üretici yazılımı güncelleştirmeleri gibi uzun süre çalışan cihaz güncelleştirmelerini etkinleştirir. Cihazınızı arka planda güncelleştirmek, arka plan görevi her kullanıldığında kullanıcı onayı gerektirir. DeviceUseTrigger arka plan görevinin aksine DeviceServicingTrigger arka plan görevi, cihazın yeniden başlatılmasını ve bağlantısının kesilmesini sağlar ve en fazla 30 dakikalık arka plan etkinliğine izin verir. İlke uygulama hakkında daha fazla ayrıntı bu makalenin devamında açıklanmıştır. |
Cihaz güncelleştirme işlemlerini gerçekleştirmek için uygulamanın ayrıcalıklı bir uygulama olarak belirtilmesi gerektiğinden DeviceServicingTrigger için cihaz meta verileri gerekir.
Uygulama ayrıcalığı
Ayrıcalıklı bir uygulama, uzun süre çalışan cihaz güncelleştirmeleri gibi bazı kritik cihaz işlemlerini gerçekleştirebilir. Ayrıcalıklı uygulama, cihaz üreticisinin bu işlemleri gerçekleştirme yetkisine sahip olduğu uygulamadır. Cihaz meta verileri, varsa hangi uygulamanın bir cihaz için ayrıcalıklı uygulama olarak belirlendiğini belirtir.
Cihaz meta verileri sihirbazıyla cihaz meta verilerinizi oluştururken , UWP cihaz uygulaması bilgilerini belirtin sayfasında uygulamanızı belirtin. Daha fazla bilgi için bkz . 2. Adım: UWP cihaz uygulamanız için cihaz meta verileri oluşturma.
Desteklenen protokoller
DeviceUseTrigger ve DeviceServicingTrigger kullanan cihaz arka plan görevleri, uygulamanızın belirli protokoller üzerinden çevre birimi cihazlarıyla iletişim kurmasını sağlar. Genellikle UWP uygulamaları tarafından kullanılan sistem tarafından tetiklenen görevler bu protokolleri desteklemez.
| Protokol | CihazServisTetikleyicisi | Cihaz Kullanım Tetikleyicisi | Sistem tetikleyicileri |
|---|---|---|---|
| USB |
|
|
|
| GİZLENMİŞ |
|
|
|
| Bluetooth RFCOMM |
|
|
|
| Bluetooth GATT |
|
|
|
| MTP (Medya Aktarım Protokolü) |
|
|
|
| Ağ kablolu |
|
|
|
| Ağ Wi-Fi |
|
|
|
| IDeviceIOControl |
|
|
|
Arka plan görevlerini uygulama paketi bildirimine kaydetme
Uygulamanız bir arka plan görevinin parçası olarak çalışan kodda eşitleme ve güncelleştirme işlemleri gerçekleştirir. Bu kod, IBackgroundTask uygulayan bir Windows Çalışma Zamanı sınıfına (veya JavaScript uygulamaları için ayrılmış bir JavaScript sayfasına) eklenir. Bir cihaz arka plan görevini kullanmak için, uygulamanızın bunu sistem tarafından tetiklenen arka plan görevlerinde olduğu gibi bir ön plan uygulamasının uygulama bildirim dosyasında bildirmesi gerekir.
Bir uygulama paketi bildirim dosyasının bu örneğinde , DeviceLibrary.SyncContent ve DeviceLibrary.UpdateFirmware ön plan uygulamasından giriş noktalarıdır. DeviceLibrary.SyncContent , DeviceUseTrigger kullanan arka plan görevinin giriş noktasıdır. DeviceLibrary.UpdateFirmware , DeviceServicingTrigger kullanan arka plan görevinin giriş noktasıdır.
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="DeviceLibrary.SyncContent">
<BackgroundTasks>
<m2:Task Type="deviceUse" />
</BackgroundTasks>
</Extension>
<Extension Category="windows.backgroundTasks" EntryPoint="DeviceLibrary.UpdateFirmware">
<BackgroundTasks>
<m2:Task Type="deviceServicing" />
</BackgroundTasks>
</Extension>
</Extensions>
Cihazınızı cihaz arka plan görevleriyle kullanma
Uygulamanızı DeviceUseTrigger ve DeviceServicingTrigger arka plan görevlerinden yararlanacak şekilde geliştirmek için bu temel adım kümesini izleyin. Arka plan görevleri hakkında daha fazla bilgi için bkz . Uygulamanızı arka plan görevleriyle destekleme.
Uygulamanız arka plan görevini uygulama bildirimine kaydeder ve arka plan görev kodunu IBackgroundTask uygulayan bir Windows Çalışma Zamanı sınıfına veya JavaScript uygulamaları için ayrılmış bir JavaScript sayfasına ekler.
Uygulamanız başlatıldığında, DeviceUseTrigger veya DeviceServicingTrigger gibi uygun türde bir cihaz tetikleyici nesnesi oluşturup yapılandıracak ve tetikleyici örneğini gelecekte kullanmak üzere depolayacaktır.
Uygulamanız arka plan görevinin daha önce kaydedilip kaydedilmediğini denetler ve kayıtlı değilse cihaz tetikleyicisine kaydeder. Uygulamanızın bu tetikleyiciyle ilişkili görevde koşullar ayarlamasına izin verilmiyor.
Uygulamanızın arka plan görevini tetiklemesi gerektiğinde, cihaz tetikleyici nesnesinde RequestAsync etkinleştirme yöntemini çağırır.
Arka plan göreviniz, diğer sistem arka plan görevleri gibi kısıtlanmamıştır (CPU süresi kotası yoktur) ancak ön plan uygulamalarının yanıt vermesini sağlamak için düşük öncelikli çalışır.
Windows, tetikleyici türüne bağlı olarak, arka plan görevini başlatmadan önce işlem için kullanıcı onayı istemek de dahil olmak üzere gerekli ilkelerin karşılandığını doğrular.
Windows, sistem koşullarını ve görev çalışma zamanını izler ve gerekirse gerekli koşullar artık karşılanmazsa görevi iptal eder.
Arka plan görevleri ilerleme veya tamamlanma bildirdiğinde, uygulamanız bu olayları ilerleme durumu ve kayıtlı görevdeki tamamlanmış olaylar aracılığıyla alır.
Cihaz arka plan görevlerini kullanırken dikkate alınması gereken önemli noktalar
DeviceUseTrigger ve DeviceServicingTrigger kullanan arka plan görevlerini program aracılığıyla tetikleyebilme özelliği yalnızca cihaz arka plan görevleriyle sınırlıdır.
Windows, çevre birimi cihazlarını güncelleştirirken kullanıcı onayı sağlamak için belirli ilkeleri uygular. Çevre birimi cihazlarının eşitlenmesi ve güncellenmesi sırasında kullanıcı pil ömrünü korumak amacıyla daha fazla politika uygulanır.
Windows, arka plan süresi üst sınırı (duvar saati saati) dahil olmak üzere belirli ilke gereksinimleri artık karşılanmadığında DeviceUseTrigger ve DeviceServicingTrigger kullanan arka plan görevlerini iptal edebilir. Çevre birimi cihazınızla etkileşim için bu arka plan görevlerini kullanırken politika gereksinimlerini dikkate almanız önemlidir.
Tavsiye
Bu arka plan görevlerinin nasıl çalıştığını görmek için bir örnek indirin. Özel USB cihaz örneği, DeviceUseTrigger ile cihaz eşitlemesi gerçekleştiren bir arka plan görevi gösterir.
Kullanıcı onayı
Uygulamanız DeviceUseTrigger veya DeviceServicingTrigger kullandığında Windows, kullanıcının uygulamanıza içeriği eşitlemek ve güncelleştirmek için arka planda cihazına erişme izni verdiğinden emin olmak için ilkeler uygular. Çevre birimlerini senkronize ederken ve güncellerken kullanıcı pil ömrünü korumak için politikalar da uygulanır.
Cihaz eşitleme kullanıcı onayı
DeviceUseTrigger kullanan bir arka plan görevi, uygulamanızın arka planda eşitlenmesine izin veren tek seferlik bir kullanıcı onayı gerektirir. Bu onay, uygulama ve cihaz modeli başına depolanır. Kullanıcı, uygulamanın arka planda cihaza erişmesine izin verir; tıpkı uygulamanın ön plandayken cihaza erişmesine izin verdiği gibi.
Aşağıdaki örnekte Tailspin Toys adlı bir uygulama arka planda eşitleme için kullanıcı izni alıyor.
Kullanıcılar daha sonra fikirlerini değiştirirse Ayarlar'da izinleri iptal edebilir.
Cihaz güncelleştirme kullanıcı onayı
DeviceUseTrigger kullanan arka plan görevlerinin aksine, DeviceServicingTrigger arka plan görevini kullananlar, arka plan görevi her tetiklendiğinde kullanıcı onayı gerektirir. Bu onay, DeviceUseTrigger için olduğu gibi depolanmaz. Bunun nedeni cihaz üretici yazılımı güncelleştirmelerinin daha yüksek riskli işlemler içermesi ve tamamlanması için daha fazla zamana ihtiyaç duymasıdır.
Windows ayrıca kullanıcılara cihaz güncelleştirmeleri hakkında bilgi sağlar. Bu, güncelleştirme boyunca cihazı bağlı tutmaya ve bilgisayarın şarj edilmesini sağlamaya yönelik uyarıları içerir. Uygulamanız tarafından sağlanırsa Windows işlemin yaklaşık çalışma süresini de gösterir.
Sıklık ve ön plan kısıtlamaları
Uygulamanızın işlemleri başlatabileceği sıklıkta herhangi bir kısıtlama yoktur, ancak uygulamanız aynı anda yalnızca bir DeviceUseTrigger veya DeviceServicingTrigger arka plan görevi işlemi çalıştırabilir (bu diğer arka plan görev türlerini etkilemez) ve yalnızca uygulamanız ön plandayken bir arka plan görevi başlatabilir. Uygulamanız ön planda olmadığında, DeviceUseTrigger veya DeviceServicingTrigger ile bir arka plan görevi başlatamaz. uygulamanız, ilk arka plan görevi tamamlanmadan önce ikinci bir cihaz arka plan görevi başlatamaz.
Cihaz arka plan görev ilkeleri
Uygulamanız bir cihaz arka plan görevi kullandığında Windows ilkeleri zorunlu kılar. Bu ilkeler karşılanmazsa, DeviceUseTrigger veya DeviceServicingTrigger kullanan arka plan görevi iptal edilebilir. Çevre birimi cihazınızla etkileşime geçmek için cihaz arka plan görevlerini kullanırken bu ilke gereksinimlerini göz önünde bulundurmanız önemlidir.
Görev başlatma ilkeleri
Bu tablo, her arka plan görev tetikleyicisi için hangi görev başlatma ilkelerinin geçerli olduğunu gösterir.
| Politika | CihazServisTetikleyicisi | Cihaz Kullanım Tetikleyicisi |
|---|---|---|
| Arka plan görevi tetiklendiğinde UWP uygulamanız ön plandadır. |
|
uygulanır |
| Cihazınız sisteme bağlı (veya kablosuz bir cihaz için menzilinde, örneğin Bluetooth veya Wi-Fi ile). |
|
uygulanır |
| Arka plan göreviniz, ekran kilitliyken dakikada bir veya ekran kilitli olmadığında 5 dakikada bir 400ms CPU süresi (1 GHz CPU varsayılarak) tüketir. Bu ilkenin karşılanmaması, görevinizin iptaline neden olabilir. |
|
uygulanır |
| Cihazınıza cihaz çevre birimi API'lerini (USB, HID, Bluetooth vb. için Windows Çalışma Zamanı API'leri) kullanarak erişebilirsiniz. Uygulamanız cihaza erişemiyorsa arka plan görevlerine erişim reddedilir. |
|
uygulanır |
| Uygulama tarafından sağlanan arka plan görev giriş noktası, uygulama paketi bildirimine kaydedilir. |
|
uygulanır |
| Kullanıcı, göreve devam etme izni verdi. | Her zaman. | İlk başta, ardından uygulama izinleri ile kontrol edildi. |
| Uygulama tarafından sağlanan süre tahmini 30 dakikadan kısadır. |
|
|
| Uygulama, cihaz için ayrıcalıklı uygulama olarak belirtilir. (Cihaz kabının cihaz meta verilerindeki ayrıcalıklı uygulama listesiyle tam uygulama kimliği eşleşmesi gereklidir.) |
|
|
| Bilgisayarın pil kapasitesi 33%'den fazladır veya AC elektrikle çalışmaktadır. |
|
|
| İşlem türü başına yalnızca bir cihaz arka plan görevi çalışıyor. |
|
uygulanır |
Çalışma zamanı ilkesi denetimleri
Göreviniz arka planda çalışırken Windows aşağıdaki çalışma zamanı ilkesi gereksinimlerini uygular. Çalışma zamanı gereksinimlerinden herhangi biri doğru olmayı durdurursa, Windows cihazınızın arka plan görevini iptal eder.
Bu tablo, her arka plan görev tetikleyicisi için hangi çalışma zamanı ilkelerinin geçerli olduğunu gösterir.
| İlke denetimi | CihazServisTetikleyicisi | Cihaz Kullanım Tetikleyicisi |
|---|---|---|
| Duvar saati zaman sınırı: Uygulamanızın görevinin arka planda çalışabileceği toplam süre. | 30 dakika | 10 dakika |
| Cihazınız sisteme bağlı (veya kablosuz bir cihaz için menzilinde, örneğin Bluetooth veya Wi-Fi ile). |
|
uygulanır |
| Görev cihazda normal G/Ç gerçekleştiriyor (5 saniyede bir 1 G/Ç). |
|
uygulanır |
| Uygulama görevi iptal etmemiştir. |
|
uygulanır |
| Uygulamadan çıkılmamış. |
|
uygulanır |
En iyi yöntemler
Aşağıda, cihaz arka plan görevlerini kullanan UWP cihaz uygulamaları için en iyi yöntemler yer alır.
Cihaz arka planı görev programlama modeli
Uygulamanızdan DeviceUseTrigger veya DeviceServicingTrigger arka plan görevlerini kullanmak, kullanıcılarınız uygulamaları değiştirirse ve ön plan uygulamanız Windows tarafından askıya alınırsa ön plan uygulamanızdan başlatılan tüm eşitleme veya cihaz güncelleştirme işlemlerinin arka planda çalışmaya devam etmesini sağlar. Arka plan görevlerinizi kaydetmek, tetikleme ve kaydını kaldırmak için bu genel modeli izlemenizi öneririz:
Tetikleyiciyi istemeden önce arka plan görevini kaydedin.
İlerleme ve tamamlama olay işleyicilerini tetikleyicinize bağlayın. Uygulamanız askıya alma işleminden döndüğünde Windows, uygulamanıza arka plan görevlerinizin durumunu belirlemek için kullanılabilecek kuyruğa alınmış ilerleme veya tamamlama olaylarını sağlar.
DeviceUseTrigger veya DeviceServicingTrigger arka plan görevlerinizi tetiklerken açık olan tüm cihaz nesnelerini kapatın; böylece bu cihazlar arka plan göreviniz tarafından ücretsiz olarak açılabilir ve kullanılabilir.
Tetikleyiciyi kaydedin.
Görev tamamlandığında arka plan görevinin kaydını kaldırın. Arka plan göreviniz tamamlandığında, arka plan görevlerinin kaydını kaldırıp cihazı yeniden açabilir ve UWP uygulamanızdan düzenli olarak kullanabilirsiniz.
Arka plan görev sınıfınızdan iptal olayları için kaydolun. İptal olaylarına kaydolmak, Windows veya ön plan uygulamanız tarafından iptal edildiğinde arka plan görev kodunuzun çalışmakta olan arka plan görevinizi düzgün bir şekilde durdurmasını sağlar.
Uygulamadan çıkılırken (askıya alınmaz), çalışan görevlerin kaydını kaldırın ve iptal edin.
Uygulamanız kapandığında, kaydı silin ve çalışan herhangi bir görevi iptal edin.
Uygulamanızdan çıkıldığında, arka plan görevleriniz iptal edilir ve mevcut olay işleyicilerinin var olan arka plan görevlerinizle bağlantısı kesilir. Bu, arka plan görevlerinizin durumunu saptamanızı engeller. Arka plan görevinin kaydını kaldırıp iptal etmek, iptal kodunuzun arka plan görevlerinizi temiz bir şekilde durdurmasına olanak sağlar.
Tavsiye
Bunun Özel USB cihaz örneğiyle nasıl yapıldığının ayrıntılı açıklaması için bkz. Cihaz arka plan görevi oluşturma.
Arka plan görevini iptal etme
Ön plan uygulamanızdan arka planda çalışan bir görevi iptal etmek için, uygulamanızda kullandığınız BackgroundTaskRegistration nesnesindeki Kaydı Kaldır yöntemini kullanarak DeviceUseTrigger veya DeviceServicingTrigger arka plan görevini kaydedin. BackgroundTaskRegistration üzerinde Unregister yöntemini kullanarak arka plan görevinizin kaydını kaldırmak, arka plan görev altyapısının arka plan görevinizi iptal etmesine neden olur.
Ayrıca Unregister yöntemi, arka plan görevinizin şu anda çalışan örneklerinin tamamlanmasına izin vermeden iptal edilmesi gerekip gerekmediğini belirtmek için bir Boole true veya false değeri alır. Daha fazla bilgi için bkz. BackgroundTaskRegistration.Unregister için API başvurusu.