بدء إنشاء تجارب غامرة

أجهزة XR المشمولة
تساعدك هذه الإرشادات في إنشاء تجارب لهذه الأنواع من أجهزة XR.
سماعات الرأس بنظام الواقع الممتد
نظارات سلكية بنظام الواقع الممتد

بعد تثبيت استوديو Android وضبط إعداداته، وإنشاء مشروع، وإعداد حزمة تطوير البرامج (SDK) لمنصة Jetpack XR، ستكون جاهزًا لبدء إنشاء تجارب غامرة للأجهزة مثل سماعات الرأس بنظام الواقع الممتد ونظارات بنظام الواقع الممتد السلكية.

قبل البدء في استكشاف جميع الطرق التي يمكنك من خلالها إنشاء التطبيق، يُرجى مراجعة المعلومات وإكمال أي مهام في الأقسام التالية للتأكّد من ضبط تطبيقك لتطوير الواقع الممتد الغامر.

ضبط ملف البيان الخاص بتطبيقك

كما هو الحال مع مشاريع تطبيقات Android الأخرى، يجب أن يتضمّن تطبيق Android XR ملف AndroidManifest.xml يتضمّن إعدادات بيان محدّدة. يصف ملف البيان المعلومات الأساسية عن تطبيقك لأدوات إصدار Android ونظام التشغيل Android وGoogle Play. لمزيد من المعلومات، يُرجى الاطّلاع على دليل نظرة عامة على بيان التطبيق.

بالنسبة إلى التطبيقات المميّزة في الواقع الممتد، يجب أن يحتوي ملف البيان على العناصر والسمات التالية:

سمة PROPERTY_XR_ACTIVITY_START_MODE

تتيح السمة android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE" للنظام معرفة أنّه يجب تشغيل نشاط في وضع معيّن عند بدء النشاط.

تحتوي هذه السمة على القيم التالية:

  • ‫XR_ACTIVITY_START_MODE_HOME_SPACE (حزمة تطوير البرامج Jetpack XR SDK فقط)
  • ‫XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED (حزمة تطوير البرامج Jetpack XR SDK فقط)

XR_ACTIVITY_START_MODE_HOME_SPACE

استخدِم وضع البدء هذا لتشغيل تطبيقك في Home Space. في Home Space، يمكن تشغيل تطبيقات متعددة جنبًا إلى جنب، ما يتيح للمستخدمين تنفيذ مهام متعددة. يمكن تشغيل أي تطبيق Android للأجهزة الجوّالة أو الشاشات الكبيرة في "المساحة المشتركة"، بالإضافة إلى تطبيقات الواقع الممتد التي تم إنشاؤها باستخدام حزمة تطوير البرامج (SDK) لـ Jetpack XR.

<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

استخدِم وضع البدء هذا لتشغيل تطبيقك في وضع "مساحات كاملة". في وضع "المساحة الكاملة"، يتم تشغيل تطبيق واحد فقط في كل مرة، بدون حدود للمساحة، ويتم إخفاء جميع التطبيقات الأخرى.


<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" إلى أنّه يجب تشغيل التطبيق بنوع معيّن من الحدود. يجب أن يحدّد تطبيقك XR_BOUNDARY_TYPE_LARGE إذا كان مصمَّمًا للسماح للمستخدمين بالتنقّل في مساحتهم الفعلية. لا يقدّم تحديد XR_BOUNDARY_TYPE_NO_RECOMMENDATION أي اقتراحات لنوع حدود الأمان، لذا يستخدم النظام النوع المستخدَم حاليًا.

<manifest ... >

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

ميزات PackageManager لتطبيقات الواقع الممتد

عند توزيع التطبيقات من خلال "متجر Google Play"، يمكنك تحديد ميزات الأجهزة أو البرامج المطلوبة في بيان التطبيق. يسمح عنصر uses-feature لـ "متجر Google Play" بفلترة التطبيقات التي تظهر للمستخدمين بشكل مناسب.

تتوفّر الميزات التالية في التطبيقات المميّزة للواقع الممتد.

android.software.xr.api.spatial

يجب أن تتضمّن التطبيقات التي تم إنشاؤها باستخدام حزمة تطوير البرامج (SDK) لـ Jetpack XR هذه الميزة في ملف بيان التطبيق. تعتمد القيمة التي تضبطها لسمة android:required على قناة الإصدار المحدود لتطبيقك.

إذا كان تطبيقك يجمع بين ميزات أو محتوى مخصّص للواقع الممتد في حزمة APK حالية للأجهزة الجوّالة وتم نشره على قناة الإصدار المحدود للأجهزة الجوّالة، اضبط السمة android:required على false:

<!-- 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" />

إذا كان تطبيقك مصمّمًا خصيصًا للأجهزة التي تتيح استخدام الواقع الممتد وتم نشره في قناة الإصدار المحدود المخصّصة لتطبيقات Android XR، اضبط السمة android:required على true:

<!-- 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

تشير هذه الميزة إلى أنّ التطبيق يتطلّب إدخالاً من وحدة تحكّم في الحركة عالية ال��قة بست درجات حرية (6DoF) ليعمل بشكل صحيح. إذا كان تطبيقك يتوافق مع وحدات التحكّم ولا يمكنه العمل بدونها، اضبط القيمة على true. إذا كان تطبيقك يتيح استخدام وحدات التحكّم ولكن يمكن تشغيله بدونها، اضبطه على false.

<!-- 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

تشير هذه العلامة إلى أنّ التطبيق يتطلّب تتبُّعًا عالي الدقة لحركة اليد ليعمل بشكل صحيح، بما في ذلك موضع مفاصل يد المستخدم واتجاهها وسرعتها. إذا كان تطبيقك يتيح تتبُّع اليد ولا يمكنه العمل بدونه، اضبط القيمة على true. إذا كان تطبيقك يتيح تتبُّع حركة اليد، ولكن يمكن تشغيله بدون هذه الميزة، اضبطه على false.

<!-- 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

تشير هذه العلامة إلى أنّ التطبيق يتطلّب تتبُّع العين بدقة عالية لكي تعمل ميزة الإدخال بشكل صحيح. إذا كان تطبيقك يتيح تتبُّع حركة العين للإدخال ولا يمكنه العمل بدونه، اضبط القيمة على true. إذا كان تطبيقك يتيح تتبُّع العين للإدخال، ولكن يمكن تشغيله بدون ذلك، اضبطه على false.

<!-- 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" />

android.hardware.xr.input.face_tracking

تشير هذه العلامة إلى أنّ التطبيق يتطلّب أجهزة تتبُّع تعابير الوجه ليعمل بشكل صحيح. إذا كان تطبيقك يتيح تتبُّع تعابير الوجه ولا يمكنه العمل بدونه، اضبط القيمة على true. إذا كان تطبيقك يتيح تتبُّع تعابير الوجه، ولكن يمكنه العمل بدونه، اضبطه على false.

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

ملاحظات حول توافق ملف بيان التطبيق مع تطبيقات الأجهزة الجوّالة والأجهزة ذات الشاشات الكبيرة

كما هو موضّح في قسم ميزات PackageManager لتطبيقات XR، تعلن التطبيقات عن استخدامها لميزة معيّنة من خلال الإشارة إليها في عنصر <uses-feature> في ملف بيان التطبيق. قد لا تتوافق بعض الميزات، مثل الاتصال الهاتفي أو نظام تحديد المواقع العالمي (GPS)، مع جميع الأجهزة.

للحصول على قائمة بالميزات المفعَّلة على جهاز معيّن، شغِّل adb shell pm list features.

الميزات غير المتوافقة

يفلتر "متجر Google Play" التطبيقات المتاحة للتثبيت على جهاز معيّن باستخدام بيانات ميزات Android التالية.

معدّات الكاميرا

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

إمكانية الاتصال

android.hardware.ethernet

android.hardware.uwb

android.hardware.ipsec_tunnel_migration

إعداد الجهاز

android.hardware.ram.low

إعدادات شكل الجهاز

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

الإدخال

android.hardware.consumerir

android.software.input_methods

الموقع الجغرافي

android.hardware.location.gps

اتصال قصير المدى

android.hardware.nfc

android.hardware.nfc.ese

android.hardware.nfc.hce

android.hardware.nfc.hcef

android.hardware.nfc.uicc

android.hardware.nfc.beam

إعدادات الأمان والأجهزة

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

أجهزة الاستشعار

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

إعدادات البرامج

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

الاتصالات الهاتفية

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

الواقع الافتراضي (قديم)

android.hardware.vr.headtracking

android.hardware.vr.high_performance

android.software.vr.mode

التطبيقات المصغَّرة

android.software.app_widgets

الخطوات التالية

بعد الانتهاء من ضبط ملف بيان تطبيقك ومراجعة المعلومات المهمة، يمكنك استكشاف طرق إنشاء تجارب غامرة: