Wear OS'te izin isteme

Wear OS'te izin isteme, mobil uygulamalarda izin istemeye benzer, ancak birkaç ek kullanım alanı vardır. Bu dokümanda, Android izinlerinin işleyişini bildiğiniz varsayılmaktadır. Yoksa izinlerin Android'de nasıl çalıştığını inceleyin.

Mobil uygulamada olduğu gibi, kullanıcının belirli işlevlere erişmek için Wear uygulamasına izin vermesi gerekir. Wear uygulamalarınızda herhangi bir izin istemeden anlamlı işlevler sağlayın.

İzin senaryoları

Wear OS'te tehlikeli izinler isterken karşılaşabileceğiniz birkaç senaryo vardır:

  • Wear uygulaması, giyilebilir cihazda çalışan bir uygulama için izin ister.

  • Wear uygulaması, telefonda çalışan bir uygulama için izin ister.

  • Telefon uygulaması, giyilebilir cihazda çalışan bir uygulama için izin ister.

  • Telefon uygulaması, yalnızca giyilebilir cihaz bağlıyken kullanılabilecek birden fazla izin ister.

Tüm bu senaryoları çalışan bir uygulamada görmek için GitHub'da ExcersizeSampleCompose örneğini inceleyin.

Aşağıdaki bölümlerde bu senaryoların her biri açıklanmaktadır. İzin isteme hakkında daha ayrıntılı bilgi için İzin isteği kalıpları bölümüne bakın.

Wear uygulaması, giyilebilir cihaz izni istiyor

Wear uygulaması giyilebilir cihazda çalışan bir uygulama için izin istediğinde sistem, kullanıcıdan bu izni isteyen bir iletişim kutusu görüntüler. Uygulamanızda, yalnızca kullanıcı belirli bir işlemi gerçekleştirmek için izinlerin neden gerekli olduğunu anladığında izin isteyin.

Kullanıcılarınıza en iyi deneyimi sunduğunuzdan emin olmak için izin ilkelerini inceleyin. Gerekirse shouldShowRequestPermissionRationale() adresini kontrol etmeyi ve ek bilgi sağlamayı unutmayın.

Bir uygulama veya kadran için aynı anda birden fazla izin gerekiyorsa izin istekleri birbiri ardına görünür.

Birbiri ardına olacak şekilde birden fazla izin ekranı.
Şekil 1. İzin ekranları sırayla gösteriliyor.

Wear uygulaması telefon izni istiyor

Wear uygulaması telefon izni istediğinde (örneğin, giyilebilir bir uygulama uygulamanın mobil sürümündeki fotoğraflara veya diğer hassas verilere erişmek istediğinde) Wear uygulaması, izni kabul etmesi için kullanıcıyı telefona göndermelidir. Burada telefon uygulaması bir etkinlik kullanarak kullanıcıya ek bilgiler sağlayabilir. Etkinlikte biri izni vermek, diğeri reddetmek için olmak üzere iki düğme ekleyin.

Wear uygulaması, izin vermesi için kullanıcıyı telefona gönderir.
Şekil 2. İzin vermesi için kullanıcıyı telefona gönderin.

Telefon uygulaması giyilebilir cihaz izni istiyor

Kullanıcı bir telefon uygulamasındaysa ve uygulama, giyilebilir cihaz iznine ihtiyaç duyuyorsa (örneğin, telefonun bağlantısının kesilmesi ihtimaline karşı müziği önceden yüklemek için) telefon uygulaması, izni kabul etmesi için kullanıcıyı giyilebilir cihaza gönderir. Uygulamanın giyilebilir sürümü, sistem izinleri iletişim kutusunu tetiklemek için requestPermissions() yöntemini kullanır.

Telefon uygulaması, izin vermek için kullanıcıyı giyilebilir cihaza gönderir.
Şekil 3. İzin vermek için kullanıcıyı giyilebilir cihaza gönderin.

Telefon uygulaması aynı anda birden fazla izin ister

Şekil 4. Tek bir istekte birden fazla izin istemek için tamamlayıcı cihaz profilini kullanan izinler iletişim kutusu.

Android 12 (API düzeyi 31) ve sonraki sürümlerdeki iş ortağı uygulamaları, kol saatine bağlanırken tamamlayıcı cihaz profillerini kullanabilir. Profil kullanmak, cihaz türüne özel izin grubunun verilmesini tek bir adımda toplayarak kayıt sürecini basitleştirir.

Paket halinde sunulan izinler, cihaz bağlandıktan sonra tamamlayıcı uygulamaya verilir ve yalnızca cihaz ilişkilendirildiğinde geçerli olur. Uygulamayı silmek veya ilişkilendirmeyi kaldırmak izinleri kaldırır. Ayrıntılar için AssociationRequest.Builder.setDeviceProfile() sayfasına göz atın.

İzin isteği kalıpları

Kullanıcılardan izin istemek için farklı kalıplar vardır. Öncelik sırasına göre:

  • İznin belirli bir işlev için açıkça gerekli olduğu, ancak uygulamanın bütünü için gerekli olmadığı durumlarda bunu bağlam içinde sorun.

  • İzin isteme nedeninin açık olmadığı ve iznin uygulamanın tamamının çalışması için gerekli olmadığı durumlarda bilgi verin.

Bu kalıplar aşağıdaki bölümlerde açıklanmıştır.

Bağlam içinde sor

Belirli bir işlemi gerçekleştirmek için neden gerekli olduğu kullanıcı tarafından net olarak anlaşıldığında izin isteyin. Kullanıcıların, kullanmak istedikleri özellikle bağlantısını anladıklarında izin verme olasılıkları artar.

Örneğin, bir uygulama, kullanıcının yakınındaki ilgi çekici yerleri göstermek için kullanıcının konum bilgisini isteyebilir. Kullanıcı yakındaki yerleri aramak için dokunduğunda uygulama hemen konum iznini isteyebilir. Çünkü yakındaki yerleri arama ile konum izni ihtiyacı arasında açık bir ilişki vardır. Bu ilişkinin bariz olması, uygulamanın ek eğitim ekranları görüntülemesini gerekli kılmaz.

Uygulama, açıkça gerekli olduğunda izin istiyor.
Şekil 5. Bağlama uygun bir izin isteyin.

Bağlama dayalı eğitim

Şekil 6'da bağlam içi eğitim örneği gösterilmektedir. Uygulama, zamanlayıcıyı başlatmak için izin gerektirmez ancak satır içi bir eğitim işareti, etkinliğin bir bölümünün (konum algılama) kilitli olduğunu gösterir. Kullanıcı işarete dokunduğunda, konum algılama kilidinin açılmasını sağlayan bir izin isteği ekranı görünür.

Uygulamanızın daha fazla bilgi sağlayıp sağlamayacağına karar vermesine yardımcı olmak için shouldShowRequestPermissionRationale() yöntemini kullanın. Ek ayrıntılar için Uygulama izni isteme bölümünü inceleyin. Alternatif olarak, GitHub'daki konuşmacı örnek uygulamasının bilgi gösterme işlemlerini nasıl işlediğini inceleyebilirsiniz.

Bir izin gerektiğinde söz konusu iznin neden gerekli olduğu uygulama tarafından açıklanır.
Şekil 6. Bağlama uygun eğitimler verin.

Herkese açık kullanıcı adı reddi

Kullanıcı amaçlanan bir etkinlik açısından kritik olmayan, istenen bir izni reddederse etkinliğe devam etmesini engellemeyin. Etkinliğin belirli bölümleri reddedilen izin tarafından devre dışı bırakılırsa görsel, işlem yapılabilir geri bildirim sağlayın.

Şekil 7'de, bir özelliğin kullanıcı tarafından kullanılmasına izin verilmediği için kilitli olduğunu belirtmek üzere kilit simgesinin kullanımı gösterilmektedir.

Kullanıcı izin reddettiğinde, ilişkili özelliğin yanında bir kilit simgesi gösterilir.
Şekil 7. Bir özelliğin, reddedilen izin nedeniyle kilitlendiğini gösteren kilit simgesi.

Daha önce reddedilen bir giyilebilir izin iletişim kutusu ikinci kez göründüğünde Reddet, tekrar gösterme seçeneği içerir. Kullanıcı bu seçeneği belirlerse gelecekte bu izni vermelerinin tek yolu giyilebilir cihazın Ayarlar uygulamasına gitmektir.

Sistem, izin istemeyi durdurmayı teklif ediyor.
Şekil 8. Kullanıcı, daha önce iki kez reddedilmiş olan bir izin isteğine Ayarlar'dan erişebilir.

Reddedilen izinlerin nasıl ele alınacağı hakkında daha fazla bilgi edinin.

Hizmetler için izinler

requestPermissions() yöntemini yalnızca bir etkinlik çağırabilir. Dolayısıyla, kullanıcı bir hizmet kullanarak (ör. kadran aracılığıyla) uygulamanızla etkileşimde bulunursa hizmetin izin istemeden önce bir etkinlik açması gerekir. Bu etkinlikte, iznin neden gerekli olduğu konusunda ek eğitim sağlayın.

Genel olarak, kadran için izin istemeyin. Bunun yerine, bir özellik uygulayın ve kullanıcının, özellik aracılığıyla hangi verilerin görüntüleneceğini seçmesine izin verin.

Ayarlar

Kullanıcı, Wear uygulamasının izinlerini dilediği zaman Ayarlar'dan değiştirebilir. Kullanıcı izin gerektiren bir işlem yapmaya çalıştığında, uygulamanın işlemi gerçekleştirme izni olup olmadığını öğrenmek için önce checkSelfPermission() yöntemini çağırın.

Kullanıcı daha sonra izni iptal etmiş olabileceğinden, kullanıcı daha önce izin vermiş olsa bile bu kontrolü gerçekleştirin.

Kullanıcı, izinleri Ayarlar uygulaması üzerinden değiştirebilir.
Şekil 9. Kullanıcı, izinleri Ayarlar uygulamasını kullanarak değiştirebilir.