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

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

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

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

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

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

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

السمة PROPERTY_XR_ACTIVITY_START_MODE

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

تتضمّن هذه السمة القيم التالية:

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

XR_ACTIVITY_START_MODE_HOME_SPACE

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

<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 لـ &quot;متجر Play&quot; فلترة التطبيقات المعروضة للمستخدمين بشكل مناسب.

الميزات التالية خاصة بالتطبيقات التي تختلف عن تطبيقات XR.

android.software.xr.api.spatial

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

إذا كانت حِزم تطبيقك تتضمّن ميزات أو محتوى مخصّصًا لأجهزة XR في حزمة 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

تشير هذه الميزة إلى أنّ التطبيق يتطلّب إدخال بيانات من وحدة تحكّم في الحركة عالية الدقة ذات 6 درجات حرية لكي يعمل بشكل صحيح. إذا كان تطبيقك يتوافق مع وحدات التحكّم ولا يمكنه العمل بدونها، اضبط القيمة على 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" />

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

كما هو موضّح في قسم ميزات 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

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

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