Etkileyici deneyimler oluşturmaya başlama

Geçerli XR cihazlar
Bu kılavuz, bu tür XR cihazlar için deneyimler oluşturmanıza yardımcı olur.
XR Kulaklıklar
Kablolu XR Gözlükler

Android Studio'yu yükleyip yapılandırdıktan, proje oluşturduktan ve Jetpack XR SDK'yı ayarladıktan sonra, etkileyici deneyimler oluşturmaya başlayabilirsiniz.

Oluşturabileceğiniz tüm yöntemleri keşfetmeye başlamadan önce, uygulamanızın sürükleyici XR geliştirme için yapılandırıldığından emin olmak üzere aşağıdaki bölümlerdeki bilgileri inceleyin ve görevleri tamamlayın.

Uygulamanızın manifest dosyasını yapılandırma

Diğer Android uygulama projelerinde olduğu gibi, Android XR uygulamanızda belirli manifest ayarlarını içeren bir AndroidManifest.xml dosyası olmalıdır. Manifest dosyası, uygulamanızla ilgili temel bilgileri Android derleme araçlarına, Android işletim sistemine ve Google Play'e açıklar. Daha fazla bilgi için uygulama manifestine genel bakış kılavuzuna bakın.

XR'ye özel uygulamalar için manifest dosyanızda aşağıdaki öğeler ve özellikler bulunmalıdır:

PROPERTY_XR_ACTIVITY_START_MODE özelliği

android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE" özelliği, etkinlik başlatıldığında belirli bir modda başlatılması gerektiğini sisteme bildirir.

Bu özelliğin aşağıdaki değerleri vardır:

  • XR_ACTIVITY_START_MODE_HOME_SPACE (yalnızca Jetpack XR SDK)
  • XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED (yalnızca Jetpack XR SDK)

XR_ACTIVITY_START_MODE_HOME_SPACE

Uygulamanızı Ana Sayfa Alanı'nda başlatmak için bu başlangıç modunu kullanın. Ev Alanı'nda birden fazla uygulama yan yana çalışabilir. Böylece kullanıcılar aynı anda birden fazla iş yapabilir. Jetpack XR SDK kullanılarak oluşturulan XR uygulamalarının yanı sıra tüm mobil veya büyük ekran Android uygulamaları Ana Sayfa Alanı'nda çalışabilir.

<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
           android:value="XR_ACTIVITY_START_MODE_HOME_SPACE" />
       <activity
           android:name="com.example.myapp.MainActivity" ... >

           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>

XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED

Uygulamanızı tam alanda başlatmak için bu başlangıç modunu kullanın. Tam alanda, alan sınırları olmadan tek bir uygulama çalışır ve diğer tüm uygulamalar gizlenir.


<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
           android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED" />
       <activity
           android:name="com.example.myapp.MainActivity" ... >

           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>

android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED" özelliği, uygulamanın belirli bir sınır türüyle başlatılması gerektiğini gösterir. Uygulamanızın, kullanıcıların fiziksel alanlarında hareket etmelerine olanak tanımak için tasarlanıp tasarlanmadığını XR_BOUNDARY_TYPE_LARGE belirtmesi gerekir. XR_BOUNDARY_TYPE_NO_RECOMMENDATION belirtildiğinde güvenlik sınırı türüyle ilgili öneri verilmez. Bu nedenle sistem, zaten kullanılmakta olan türü kullanır.

<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED"
           android:value="XR_BOUNDARY_TYPE_LARGE" />
   </application>
</manifest>

XR uygulamaları için PackageManager özellikleri

Uygulamaları Google Play Store üzerinden dağıttığınızda, uygulama manifestinde gerekli donanım veya yazılım özelliklerini belirtebilirsiniz. uses-feature öğesi, Play Store'un kullanıcılara gösterilen uygulamaları uygun şekilde filtrelemesine olanak tanır.

Aşağıdaki özellikler, XR'ye özel uygulamalara özgüdür.

android.software.xr.api.spatial

Jetpack XR SDK kullanılarak oluşturulan uygulamaların bu özelliği uygulama manifestine eklemesi gerekir. android:required özelliği için ayarladığınız değer, uygulamanızın sürüm kanalına bağlıdır.

Uygulama paketiniz, XR'a özel özellikleri veya içerikleri mevcut bir mobil APK'da birleştiriyorsa ve mobil sürüm kanalında yayınlanıyorsa android:required özelliğini false olarak ayarlayın:

<!-- If you are publishing an existing mobile APK using the mobile release track, set android:required to false.-->
<uses-feature android:name="android.software.xr.api.spatial" android:required="false" />

Uygulamanız XR özellikli cihazlar için özel olarak geliştirilmişse ve Android XR'a özel sürüm kanalında yayınlanmışsa android:required özelliğini true olarak ayarlayın:

<!-- If you are publishing a separate APK for XR using the dedicated Android XR release track, set android:required to true.-->
<uses-feature android:name="android.software.xr.api.spatial" android:required="true" />

android.hardware.xr.input.controller

Bu özellik, uygulamanın doğru çalışması için yüksek hassasiyetli, 6DoF (serbestlik derecesi) hareket denetleyicisinden giriş yapılması gerektiğini gösterir. Uygulamanız kontrol cihazlarını destekliyorsa ve kontrol cihazları olmadan çalışamıyorsa değeri true olarak ayarlayın. Uygulamanız kumandaları destekliyor ancak kumanda olmadan çalışabiliyorsa false olarak ayarlayın.

<!-- Sets android:required to true, indicating that your app can't function on devices without controllers. -->
<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />

android.hardware.xr.input.hand_tracking

Bu işaret, uygulamanın doğru çalışması için kullanıcının elindeki eklemlerin konumu, yönü ve hızı dahil olmak üzere yüksek doğrulukta el takibi gerektirdiğini gösterir. Uygulamanız el takibini destekliyorsa ve bu özellik olmadan çalışamıyorsa değeri true olarak ayarlayın. Uygulamanız el takibini destekliyor ancak bu özellik olmadan da çalışabiliyorsa false olarak ayarlayın.

<!-- Sets android:required to true, indicating that your app can't function on devices without hand tracking. -->
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />

android.hardware.xr.input.eye_tracking

Bu işaret, uygulamanın doğru çalışması için giriş amacıyla yüksek doğrulukta göz takibi gerektiğini gösterir. Uygulamanız giriş için göz takibini destekliyorsa ve bu özellik olmadan çalışamıyorsa değeri true olarak ayarlayın. Uygulamanız giriş için göz takibini destekliyorsa ancak bu özellik olmadan da çalışabiliyorsa false olarak ayarlayın.

<!-- Sets android:required to true, indicating that your app can't function on devices without eye tracking. -->
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />

Mobil ve büyük ekran uygulamaları için uygulama manifesti uyumluluğuyla ilgili dikkat edilmesi gereken noktalar

XR uygulamaları için PackageManager özellikleri bölümünde açıklandığı gibi, uygulamalar, uygulama manifestindeki <uses-feature> öğesinde beyan ederek bir özelliği kullandıklarını belirtir. Telefon veya GPS gibi bazı özellikler tüm cihazlarla uyumlu olmayabilir.

Bir cihazda etkinleştirilen özelliklerin listesini almak için adb shell pm list features komutunu çalıştırın.

Desteklenmeyen özellikler

Google Play Store, aşağıdaki Android özelliği bildirimlerini kullanarak bir cihaza yüklenebilecek uygulamaları filtreler.

Kamera Donanımı

android.hardware.camera.ar

android.hardware.camera.autofocus

android.hardware.camera.capability.manual_post_processing

android.hardware.camera.capability.manual_sensor

android.hardware.camera.capability.raw

android.hardware.camera.concurrent

android.hardware.camera.external

android.hardware.camera.flash

android.hardware.camera.level.full

Bağlantı

android.hardware.ethernet

android.hardware.uwb

android.hardware.ipsec_tunnel_migration

Cihaz Yapılandırması

android.hardware.ram.low

Form Faktörü Yapılandırması

android.hardware.type.automotive

android.hardware.type.embedded

android.hardware.type.pc

android.hardware.type.television

android.hardware.type.watch

android.software.leanback

android.software.leanback_only

android.software.live_tv

Giriş

android.hardware.consumerir

android.software.input_methods

Konum

android.hardware.location.gps

Near Field Communication

android.hardware.nfc

android.hardware.nfc.ese

android.hardware.nfc.hce

android.hardware.nfc.hcef

android.hardware.nfc.uicc

android.hardware.nfc.beam

Güvenlik Yapılandırması ve Donanım

android.hardware.se.omapi.ese

android.hardware.se.omapi.sd

android.hardware.se.omapi.uicc

android.hardware.biometrics.face

android.hardware.fingerprint

android.hardware.identity_credential

android.hardware.identity_credential_direct_access

android.hardware.keystore.limited_use_key

android.hardware.keystore.single_use_key

android.hardware.strongbox_keystore

Sensörler

android.hardware.sensor.accelerometer_limited_axes

android.hardware.sensor.accelerometer_limited_axes_uncalibrated

android.hardware.sensor.ambient_temperature

android.hardware.sensor.barometer

android.hardware.sensor.gyroscope_limited_axes

android.hardware.sensor.gyroscope_limited_axes_uncalibrated

android.hardware.sensor.heading

android.hardware.sensor.heartrate

android.hardware.sensor.heartrate.ecg

android.hardware.sensor.hinge_angle

android.hardware.sensor.light

android.hardware.sensor.relative_humidity

android.hardware.sensor.stepcounter

android.hardware.sensor.stepdetector

Yazılım Yapılandırması

android.software.backup

android.software.connectionservice

android.software.expanded_picture_in_picture

android.software.live_wallpaper

android.software.picture_in_picture

android.software.telecom

android.software.wallet_location_based_suggestions

Telefon Hizmeti

android.hardware.telephony

android.hardware.telephony.calling

android.hardware.telephony.cdma

android.hardware.telephony.data

android.hardware.telephony.euicc

android.hardware.telephony.euicc.mep

android.hardware.telephony.gsm

android.hardware.telephony.ims

android.hardware.telephony.mbms

android.hardware.telephony.messaging

android.hardware.telephony.radio.access

android.hardware.telephony.subscription

android.software.sip

android.software.sip.voip

Sanal Gerçeklik (Eski)

android.hardware.vr.headtracking

android.hardware.vr.high_performance

android.software.vr.mode

Widget'lar

android.software.app_widgets

Sonraki adımlar

Uygulamanızın manifest dosyasını yapılandırmayı ve önemli bilgileri incelemeyi tamamladığınıza göre artık etkileyici deneyimler oluşturmanın yollarını keşfedebilirsiniz: