Desteklenen OpenXR uzantılarıyla veya desteklenen bir motorla geliştirmeye başlamadan önce, uygulamanızın sürükleyici XR geliştirmeye uygun şekilde yapılandırıldığından emin olmak için 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_FULL_SPACE_UNMANAGED(yalnızca OpenXR)
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
OpenXR ile oluşturulan uygulamalar Full Space'te başlatılır ve XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED başlangıç modunu kullanmalıdır. Yönetilmeyen Tam Ekran Alanı
Android XR'a uygulamanın OpenXR kullandığını bildirir.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />
<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>
PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED özelliği
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>
<uses-native-library> OpenXR
OpenXR uygulamalarının, çalışma zamanını başarıyla yüklemek için yerel OpenXR kitaplığının kullanımını bildirmesi gerekir. Bu bildirim olmadan çalışma zamanı yüklenemez.
<manifest ... >
<application ... >
<uses-native-library android:name="libopenxr.google.so" android:required="false" />
<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 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.openxr
Android XR platformunu hedefleyen ve OpenXR veya Unity ile oluşturulan uygulamalar, android:required özelliği true olarak ayarlanmış şekilde bu özelliği uygulama manifestine eklemelidir.
Android XR Extensions Package for Unity 1.0.0 veya sonraki bir sürümünü ya da Unity OpenXR: Android XR Package 0.5.0-exp.1 veya sonraki bir sürümünü kullanan uygulamaların bu öğeyi uygulama manifestine manuel olarak eklemesi gerekmez. Bu iki paket, bu öğeyi sizin için uygulama manifestine yerleştirir.
Cihazlar, bu özellik için cihazın desteklediği en yüksek OpenXR sürümünü belirtebilir. En yüksek 16 bit, ana numarayı, en düşük 16 bit ise alt numarayı temsil eder. Örneğin, OpenXR 1.1 sürümünü belirtmek için değer "0x00010001" olarak ayarlanır.
Uygulamalar, özelliğin sürümünü kullanarak uygulamanın gerektirdiği minimum OpenXR sürümünü belirtebilir. Örneğin, uygulamanız OpenXR 1.1 sürümünün desteklenmesini gerektiriyorsa aşağıdaki özelliği bildirin:
<uses-feature android:name="android.software.xr.api.openxr"
android:version="0x00010001"
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" />
Sonraki adımlar
Uygulamanızın manifest dosyasını yapılandırmayı ve önemli bilgileri incelemeyi tamamladığınıza göre, OpenXR ile geliştirme yapabileceğiniz yöntemleri keşfedin: