Wear OS'te izin isteme

Wear OS'te izin isteme, mobil uygulamalarda izin istemeye benzer. Bununla birlikte, birkaç ek kullanım alanı vardır. Bu dokümanda, Android izinlerinin işleyiş şeklini anladığınız varsayılmaktadır. Hesabınız yoksa izinlerin Android'de işleyiş şeklini inceleyin.

Tıpkı mobil uygulamalarda olduğu gibi, kullanıcının belirli işlevlere erişebilmesi 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 isteğinde bulunurken karşılaşabileceğiniz birkaç senaryo vardır:

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

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

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

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

Bu senaryoların tümünü çalışan bir uygulamada görmek için GitHub'daki 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 istemesini isteyen bir iletişim kutusu görüntüler. Uygulamanızda, yalnızca kullanıcı, belirli bir işlemi gerçekleştirmek için bu izinlerin neden gerekli olduğunu net bir şekilde anladığında izin isteyin.

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

Bir uygulama veya saat yüzü aynı anda birden fazla izin gerektiriyorsa izin istekleri birbiri ardına görünür.

Arka arkaya birden fazla izin ekranı.
Şekil 1. İzin ekranları arka arkaya 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. Orada, telefon uygulaması bir etkinlik kullanarak kullanıcıya ek bilgi sağlayabilir. Etkinlikte biri izni vermek, diğeri izin vermemek 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 uygulamanın giyilebilir cihaz iznine ihtiyacı varsa (ör. telefonun bağlantısı kesildiğinde 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 vermesi için kullanıcıyı giyilebilir cihaza gönderir.
Şekil 3. İzin vermesi için kullanıcıyı giyilebilir cihaza gönderin.

Telefon uygulaması tek seferde birden çok izin istiyor

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

Android 12 (API düzeyi 31) ve sonraki sürümlerdeki iş ortağı uygulamaları, bir saate bağlanırken tamamlayıcı cihaz profillerini kullanabilir. Profil kullanmak, cihaz türüne özel izinlerin verilmesini tek adımda gruplandırarak kayıt işlemini kolaylaştırır.

Paketlenmiş izinler, cihaz bağlandığında tamamlayıcı uygulamaya verilir ve yalnızca cihaz ilişkilendirildiği sürece geçerli olur. Uygulamayı sildiğinizde veya ilişkilendirmeyi kaldırdığınızda izinler kaldırılır. Ayrıntılı bilgi için AssociationRequest.Builder.setDeviceProfile() adresini inceleyin.

İzin isteği kalıpları

Kullanıcılardan izin istemek için farklı kalıplar mevcuttur. Öncelik sırasına göre bunlar şu şekildedir:

  • İznin belirli bir işlev için gerekli olmasına rağmen uygulamanın bütünüyle çalışması için gerekli olmadığı halleri bağlam içinde sorun.

  • İzin isteme nedeninin açık olmadığı ve iznin uygulamanın bütün olarak ç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 iznin neden gerektiği konusunda kullanıcı açısından net olduğunda izin isteyin. Kullanıcıların, kullanmak istedikleri özellikle olan bağlantısını anladıklarında izin verme olasılıkları artar.

Örneğin, bir uygulama, yakındaki ilgi çekici yerleri göstermek için kullanıcının konumunu isteyebilir. Kullanıcı yakındaki yerleri aramak için dokunduğunda uygulama, yakındaki yerleri arama ile konum izni ihtiyacı arasında açık bir ilişki olduğu için uygulama hemen konum izni isteyebilir. Bu ilişkinin bariz bir şekilde olması, uygulamanın ek eğitim ekranları göstermesine gerek yoktur.

Uygulama, açıkça gerekli olduğunda izin ister.
Şekil 5. Bağlama göre izin isteyin.

Bağlam içinde eğitim verin

Ş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 ipucu, etkinliğin bir bölümünün (konum algılama) kilitli olduğunu gösterir. Kullanıcı işaret işaretine dokunduğunda, konum algılamasının kilidini açması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. Daha ayrıntılı bilgi için Uygulama izinleri isteme bölümüne bakın. Alternatif olarak, GitHub'daki hoparlör örnek uygulamasının bilgi gösterme işlemini nasıl işlediğini inceleyebilirsiniz.

Uygulama, izne ihtiyaç duyulduğunda bu iznin neden gerekli olduğunu açıklıyor.
Şekil 6. Bilgileri yer vererek anlatın.

Reddetme işlemini ele alın

Kullanıcı, istenen bir etkinlik için kritik öneme sahip olmayan bir izni reddederse kullanıcının işleme devam etmesini engellemeyin. Reddedilen izin, etkinliğin belirli bölümlerini devre dışı bırakırsa eyleme dökülebilir görsel geri bildirimler sağlayın.

Şekil 7'de bir kilit simgesinin kullanılması, kullanıcı tarafından kullanılmasına izin verilmediği için bir özelliğin kilitlendiğini gösterir.

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

Daha önce reddedilmiş bir giyilebilir cihaz izni iletişim kutusu ikinci kez göründüğünde bu iletişim kutusunda Reddet, bir daha gösterme seçeneği bulunur. Kullanıcı bu seçeneği belirlerse ileride bu izni verebilmesinin tek yolu, giyilebilir cihazın Ayarlar uygulamasına gitmektir.

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

İzin reddinin nasıl ele alınacağı hakkında daha fazla bilgi edinin.

Hizmetler için izinler

Yalnızca bir etkinlik requestPermissions() yöntemini çağırabilir. Bu nedenle, kullanıcı bir hizmeti kullanarak (örneğin, kadran üzerinden) uygulamanızla etkileşimde bulunursa hizmetin izin istemeden önce bir etkinlik açması gerekir. Bu etkinlikte, iznin neden gerekli olduğuna dair ek eğitim verin.

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

Ayarlar

Kullanıcılar, Wear uygulamalarının izinlerini istedikleri zaman Ayarlar'dan değiştirebilir. Kullanıcı izin gerektiren bir işlem yapmaya çalıştığında ilk olarak, uygulamanın işlemi gerçekleştirme izni olup olmadığını görmek için checkSelfPermission() yöntemini çağırın.

Kullanıcı daha önce izin vermiş olsa bile bu kontrolü gerçekleştirin. Kullanıcı daha sonra izni iptal etmiş olabilir.

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