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.
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.
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ı aynı anda birden fazla izin ister
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.
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.
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.
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.
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.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Çalışma zamanı izinleri iste
- Bluetooth izinleri
- Arka planda iletişim kurma