Farklı türlerde ses gözlüklerini ve ekran gözlüklerini desteklemeyi planlayın

Uygun XR cihazlar
Bu kılavuz, bu tür XR cihazları için deneyimler geliştirmenize yardımcı olur.
Ses ve
Görüntü Arabirimli Gözlük

Farklı ses arabirimli gözlük ve görüntü arabirimli gözlük türlerinin farklı özellikleri vardır. Örneğin, tüm ses arabirimli gözlükler ve görüntü arabirimli gözlükler sesli deneyimler sunarken yalnızca görüntü arabirimli gözlüklerde uygulamanızın Jetpack Compose Glimmer ile oluşturulmuş kullanıcı arayüzlerini gösterebileceği bir ekran bulunur.

Farklı cihazlarda sorunsuz bir kullanıcı deneyimi sunmak için gözlüklerde Activity'nizi farklı cihaz özelliklerini kontrol edecek şekilde planlayın. Bu yaklaşım, belirli cihazları hedefleyen birden fazla etkinlik yerine davranışını uyarlayan tek bir etkinlik oluşturmanıza olanak tanıyarak geliştirmeyi basitleştirir.

Tahmini etkinliklerin yaşam döngüsünü anlama

Ses arabirimli gözlük ve görüntü arabirimli gözlük için oluşturduğunuz etkinlik doğrudan cihazda çalıştırılmaz. Bunun yerine, bir ana cihazdan (ör. kullanıcının telefonu) cihaza yansıtılır. Bu amaçla oluşturduğunuz özel etkinliklere projelendirilmiş etkinlikler denir. Yansıtılan etkinliklerin yaşam döngüsü, standart etkinlik yaşam döngüsüne dayanır ancak farklı türdeki ses arabirimli gözlüklerin ve görüntü arabirimli gözlüklerin özelliklerini destekleyen birkaç önemli fark da içerir.

Şekil 1. Planlanan etkinliklerin yaşam döngüsündeki önemli etkinlikler.

Aşağıda, ses arabirimli gözlüklere ve görüntü arabirimli gözlüklere yansıtılan etkinliklere özgü etkileşimlerle ilgili açıklama metinleri içeren önemli etkinliklerin dökümü verilmiştir:

  • onCreate()
    • Tahmin edilen etkinlik oluşturulduğunda çağrılır.
    • Uygulamanızın Jetpack Compose Glimmer kullanıcı arayüzünü ve diğer bileşenlerini burada başlatın.
  • onStart()
    • Yansıtılan etkinlik başladığında ve kullanıcı uygulamanın farkında olduğunda çağrılır.
  • onResume()
    • Yansıtılan etkinlik tekrar odaklandığında çağrılır. Etkinlik odaktayken etkileşim kurulabilir ve dokunmatik alan veya düğme girişini kullanabilir.
    • Gözlük daha önce baştan çıkarıldıktan (çıkarıldıktan) sonra tekrar takıldığında (takıldığında) çağrılır.
  • onPause()
    • Yansıtılan etkinlik odağı kaybettiğinde ancak kullanıcı uygulamanızın hâlâ farkında olduğunda çağrılır. Etkinlik odak dışındayken etkileşime girilemez ve giriş tüketmeyi durdurur.
  • onStop()
    • Sistem, kullanıcının artık uygulamanızın farkında olmadığını düşündüğünde çağrılır.
    • Gözlük baştan çıkarıldığında çağrılır.
  • onDestroy()
    • Yansıtılan etkinlik yok edilmek üzereyken çağrılır. Bu yöntem çağrıldığında sistem, etkinliğe bağlı tüm kaynakları serbest bırakır.

Ekran durumunun, yansıtılan etkinlik yaşam döngüsünü nasıl etkilediğini anlama

Standart bir Activity uygulamasında, cihazın ekranı kapandığında yaşam döngüsü durumu değişir ve genellikle onPause() veya onStop() durumuna geçer. Buna karşılık, yansıtılan etkinlik yaşam döngüsü, gözlüğün ekranı açıldığında veya kapandığında değişmez. Bu davranış, yansıtılan etkinliğinizin ekran kapalıyken bile Başlatıldı veya Devam ettirildi durumunda çalışmaya devam ettiği anlamına gelir. Bu sayede uygulamanızın ses deneyimleri kesintisiz olarak devam eder.

Farklı sistem ve kullanıcı etkinlikleri tarafından tetiklenen diğer etkinlik durumu değişiklikleri her zamanki gibi davranır.

Kullanıcı farkındalığının tahmini etkinliğinizi nasıl etkilediğini anlama

Kullanıcı, yansıtılan etkinliğinizi görünür olmasa bile fark edebilir. Farkındalık, kullanıcının uygulamanızın deneyimlerini algılayabileceği ve bunlarla etkileşim kurabileceği tüm yolları ifade eder. Bunlar arasında şunlar yer alır:

  • Ses, sesli geri bildirim veya diğer sesli ipuçlarını dinleme
  • Uygulamanız kameraya veya mikrofona erişiyorsa gizlilik göstergesi gibi kullanıcıya yönelik bir LED'i tetikleyen uygulama işlemleri.

Bu durumlarda kullanıcı, ekrana bakmasa bile ses arabirimli gözlüğünün veya görüntü arabirimli gözlüğünün etkin olduğunu ve yanıt verdiğini bilir:

  • Öngörülen etkinlikler için onStart() durumu, etkinliğin etkin olduğu anlamına gelir.
  • onResume() durumu, etkinliğin etkileşim kurulabilir olduğunu ve dokunmatik alan girişi alabildiğini veya birincil giriş gönderimi aldığını gösterir.

Kullanıcı uygulamanızın farkında olduğu sürece etkinliğiniz etkin ve ön planda kalır. Sistem kısa bir süre boyunca farkındalık sinyali algılamazsa etkinliği ön plandan kaldırır ve sonunda onStop() yöntemini tetikler.

Tahmini etkinlikleri ve tahmini bağlamları anlama

Ses arabirimli gözlükler ve görüntü arabirimli gözlükler, kullanıcının telefonunun özelliklerini genişleten bağlı cihazlar olarak kabul edilir. Yansıtılan bağlam, uygulamaların telefonun donanımı yerine bağlı bir gözlük cihazındaki donanımla (ör. sensörleri veya kamerası) etkileşim kurmasına olanak tanıyan, cihazı algılayan bir Context'dir. Ses arabirimli gözlükler ve görüntü arabirimli gözlükler için deneyimler geliştirirken uygulamanızın, gözlüklerin donanımına erişmek için yansıtılan bir bağlam kullanması gerekir.

Çağrı etkinliğinin bağlamına bağlı olarak uygulamanıza otomatik olarak öngörülen bir bağlam verilebilir:

  • Yansıtılan etkinlikler için: Uygulamanızın kodu, yansıtılan etkinliğinizin içinden çalışıyorsa kendi etkinlik bağlamı zaten yansıtılan bir bağlamdır. Bu senaryoda, söz konusu etkinlikte yapılan çağrılar gözlüğün donanımına zaten erişebilir.

  • Telefon uygulamaları veya hizmetleri için: Uygulamanızın, yansıtılan etkinliğinizin dışında kalan bir bölümünün (ör. telefon etkinliği veya hizmet) gözlüğün donanımına erişmesi gerekiyorsa açıkça yansıtılan bir bağlam elde etmesi gerekir. Bunun için createProjectedDeviceContext() yöntemini kullanın.

Daha fazla bilgi için Ses arabirimli gözlüklerde ve görüntü arabirimli gözlüklerde donanıma erişmek için yansıtılan bağlam kullanma başlıklı makaleyi inceleyin.

Cihaza duyarlı API'leri anlama

Bazı standart Android API'leri, çağıran etkinliğin Context değerine bağlı olarak hangi cihazın donanımına erişeceklerini değiştirir. Bu API'ler yansıtılan bir bağlam aldığında, ana makine telefon cihazındaki donanım yerine gözlüğün donanımına erişir:

  • CameraManager: Gözlükteki kameraya erişir.
  • SensorManager: Gözlükten sensör verilerini (ör. jiroskop veya ivme ölçer verileri) alır.
  • AudioManager: Gözlükte ses akışlarını, ses düzeyini ve yönlendirmeyi yönetir.