نمای کلی ساختمان برای اندروید XR

Android XR توسعه‌ای از پلتفرم و اکوسیستم اندروید است. Android XR SDK به گونه ای طراحی شده است که به شما امکان می دهد برنامه های XR را با استفاده از چارچوب ها و ابزارهای آشنای Android یا با استفاده از استانداردهای باز مانند OpenXR و WebXR بسازید. همه برنامه های سازگار با موبایل یا صفحه نمایش بزرگ برای نصب روی هدست های XR از فروشگاه Play در دسترس خواهند بود. ملاحظات سازگاری را بررسی کنید تا ببینید آیا برنامه شما سازگار است یا خیر.

این راهنما زمینه های زیر را توضیح می دهد:

  • ابزارها و فناوری های توسعه خود را انتخاب کنید
  • طراحی اپلیکیشن برای اندروید XR
  • در حال پیکربندی فایل مانیفست برنامه شما
  • ملاحظات سازگاری مانیفست برنامه
  • آشنایی با مجوزهای اندروید XR
  • اطمینان از کیفیت برنامه Android XR
  • بسته بندی و توزیع برنامه شما برای Android XR

ابزارها و فناوری های توسعه خود را انتخاب کنید

هنگام ساخت یک برنامه برای Android XR، می‌توانید از میان پلتفرم‌ها و فناوری‌های توسعه زیر یکی را انتخاب کنید:

Jetpack XR SDK

Jetpack XR SDK شامل کتابخانه‌های Android XR Jetpack است که برای استفاده از قابلیت‌های منحصر به فرد دستگاه‌های XR ساخته شده‌اند. اگر می‌خواهید یکی از موارد زیر را انجام دهید، با این SDK شروع کنید:

  • یک برنامه تلفن همراه یا رایانه لوحی Android موجود را بهینه یا ارتقا دهید
  • با استفاده از Android Studio و Jetpack یک برنامه Android XR جدید بسازید

اگر از قبل با Android Jetpack توسعه می‌دهید، Jetpack XR SDK برای شما مناسب است. این طراحی شده است تا به طور یکپارچه با آن چارچوب ها و کتابخانه ها یکپارچه شود و به شما امکان می دهد از دانش موجود برای ایجاد تجربیات فراگیر XR استفاده کنید.

درباره توسعه با Jetpack XR SDK بیشتر بیاموزید .

وحدت

Unity Engine یک موتور توسعه سه بعدی بلادرنگ است که به هنرمندان، طراحان و توسعه دهندگان اجازه می دهد تا برای ایجاد تجربیات همهجانبه و تعاملی با یکدیگر همکاری کنند. پشتیبانی Unity از Android XR به شما سطح بالایی از کنترل را بر تجربیات سه بعدی که توسعه می‌دهید، می‌دهد، در حالی که از اکوسیستم توسعه‌دهنده و پشتیبانی OpenXR Unity بهره می‌برید.

اگر قبلاً یک تجربه XR ساخته شده با Unity دارید یا اگر با توسعه Unity آشنا هستید، با این گزینه شروع کنید.

درباره توسعه با Unity برای Android XR بیشتر بدانید .

OpenXR

OpenXR یک استاندارد باز و بدون حق امتیاز است که می تواند برای ایجاد تجربیات XR با کارایی بالا و چند پلتفرمی استفاده شود. Android XR از OpenXR 1.0 و 1.1 پشتیبانی می کند و ما در حال گسترش مشخصات با افزونه های جدید برای Android XR هستیم. از آنجا که Android XR بر اساس استانداردهای باز ساخته شده است، ابزارهای توسعه ای که از OpenXR و Android پشتیبانی می کنند باید با Android XR سازگار باشند.

درباره پشتیبانی OpenXR برای Android XR بیشتر بدانید .

WebXR

WebXR به شما امکان می دهد تجربیات همه جانبه ای برای وب ایجاد کنید. این امکان دسترسی به دستگاه های واقعیت مجازی و واقعیت افزوده را در مرورگرهای وب سازگار مانند Chrome در Android XR فراهم می کند.

اگر می خواهید یک تجربه XR برای وب بسازید یا اگر می خواهید قابلیت های XR را به یک برنامه وب اضافه کنید، با این گزینه شروع کنید. تجربه‌های موجود WebXR روی Android XR نیز کار خواهند کرد.

درباره ساختن برنامه های وب با WebXR بیشتر بیاموزید .

طراحی برای XR

XR سطح طراحی را فراتر از صفحه نمایش های تخت سنتی گسترش می دهد. شما می توانید تجربه های همه جانبه ای طراحی کنید که واقعیت فیزیکی و مجازی را با هم ترکیب کنند. چه در حال ساختن یک تجربه کاملاً جدید باشید و چه در حال افزودن عناصر فراگیر به یک برنامه موجود، راهنمای طراحی برای Android XR می تواند به شما در شروع کار کمک کند.

فایل مانیفست برنامه خود را پیکربندی کنید

مانند سایر پروژه های برنامه Android، برنامه Android XR شما باید دارای یک فایل AndroidManifest.xml با تنظیمات مانیفست خاص باشد. فایل مانیفست اطلاعات ضروری در مورد برنامه شما را برای ابزارهای ساخت Android، سیستم عامل Android و Google Play توضیح می دهد. برای اطلاعات بیشتر به راهنمای نمای کلی مانیفست برنامه مراجعه کنید.

برای برنامه‌های متمایز XR ، فایل مانیفست شما باید دارای عناصر و ویژگی‌های زیر باشد:

ویژگی PROPERTY_ACTIVITY_XR_START_MODE

ویژگی android:name="android.window.PROPERTY_ACTIVITY_XR_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_FULL_SPACE_UNMANAGED (فقط OpenXR)

XR_ACTIVITY_START_MODE_HOME_SPACE

(برنامه هایی که فقط با Jetpack XR SDK ساخته شده اند)

از این حالت شروع برای راه اندازی برنامه خود در Home Space استفاده کنید. در Home Space، چندین برنامه می توانند در کنار هم اجرا شوند، بنابراین کاربران می توانند چند کار را انجام دهند. هر برنامه اندرویدی تلفن همراه یا صفحه نمایش بزرگ می تواند در Home Space و همچنین برنامه های 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

(برنامه هایی که فقط با Jetpack XR SDK ساخته شده اند)

از این حالت شروع برای راه اندازی برنامه خود در فضای کامل استفاده کنید. در فضای کامل، تنها یک برنامه در یک زمان اجرا می شود، بدون محدودیت فضایی، و همه برنامه های دیگر پنهان هستند.


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

XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED

(برنامه های ساخته شده فقط با OpenXR)

برنامه‌های ساخته شده با OpenXR در فضای کامل راه‌اندازی می‌شوند و باید از حالت شروع XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED استفاده کنند. فضای کامل مدیریت نشده به Android XR سیگنال می دهد که برنامه از OpenXR استفاده می کند.


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

ویژگی های PackageManager برای برنامه های XR

وقتی برنامه ها را از طریق فروشگاه Google Play توزیع می کنید، می توانید ویژگی های سخت افزاری یا نرم افزاری مورد نیاز را در مانیفست برنامه مشخص کنید. عنصر uses-feature به Play Store اجازه می دهد تا برنامه های نمایش داده شده به کاربران را به درستی فیلتر کند.

ویژگی های زیر مختص برنامه های XR است.

android.software.xr.immersive

اگر برنامه شما پلتفرم Android XR را هدف قرار می دهد و فقط روی پلتفرم هایی اجرا می شود که از XR پشتیبانی می کنند، مقدار را روی true تنظیم کنید. اگر برنامه شما دارای برخی ویژگی‌های بهینه‌شده XR است اما می‌تواند روی دستگاه‌های غیر XR نیز اجرا شود، مقدار را روی false تنظیم کنید.

برنامه هایی که با OpenXR یا Unity ساخته شده اند باید این مقدار را روی true تنظیم کنند.

<uses-feature android:name="android.software.xr.immersive" android:required="true" />

android.hardware.xr.input.controller

این ویژگی نشان می دهد که برنامه برای عملکرد صحیح به ورودی یک کنترلر حرکتی با دقت بالا و 6DoF (درجه آزادی) نیاز دارد. اگر برنامه شما از کنترلرها پشتیبانی می کند و نمی تواند بدون آنها کار کند، مقدار را روی true تنظیم کنید. اگر برنامه شما از کنترلرها پشتیبانی می کند اما می تواند بدون آنها کار کند، آن را روی false تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />

android.hardware.xr.input.hand_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح به ردیابی دست با وفاداری بالا از جمله موقعیت، جهت و سرعت مفاصل در دست کاربر نیاز دارد. اگر برنامه شما از ردیابی دست پشتیبانی می کند و بدون آن نمی تواند کار کند، مقدار را روی true تنظیم کنید. اگر برنامه شما از ردیابی دست پشتیبانی می کند، اما می تواند بدون آن کار کند، آن را روی false تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />

android.hardware.xr.input.eye_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح ورودی به ردیابی چشم با وفاداری بالا نیاز دارد. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند و بدون آن نمی تواند کار کند، مقدار را روی true تنظیم کنید. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند، اما می تواند بدون آن کار کند، آن را روی false تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />

ملاحظات سازگاری مانیفست برنامه برای برنامه های موبایل و صفحه نمایش بزرگ

همانطور که در بخش ویژگی‌های PackageManager برای برنامه‌های XR توضیح داده شد، برنامه‌ها اعلام می‌کنند که از یک ویژگی با اعلام آن در عنصر <uses-feature> در مانیفست برنامه استفاده می‌کنند. برخی از ویژگی ها، مانند تلفن یا GPS، ممکن است با همه دستگاه ها سازگار نباشند.

ویژگی های پشتیبانی نشده

فروشگاه 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

درک مجوزهای XR

درست مانند برنامه‌های موجود در دستگاه‌های تلفن همراه و سایر عوامل شکل، برخی از قابلیت‌های ارائه شده توسط برنامه‌های XR ممکن است به برنامه شما نیاز داشته باشد که مجوزها را در فایل AndroidManifest برنامه شما اعلام کند . در مورد مجوزهای خطرناک، برنامه شما ممکن است نیاز به درخواست مجوزهای زمان اجرا داشته باشد. برای اطلاعات عمیق تر، مجوزها را در Android و بهترین شیوه های مجوز را بخوانید.

مجوز برای ویژگی های XR

مجوزهای زیر ممکن است توسط برنامه های XR استفاده شود. همه مجوزهای موجود در این بخش مجوزهای خطرناکی در نظر گرفته می شوند، بنابراین باید آنها را در مانیفست برنامه خود اعلام کنید و در زمان اجرا درخواست کنید.

android.permission.EYE_TRACKING

از مواردی استفاده کنید که به این مجوز نیاز دارند

نمایش وضعیت و جهت گیری چشم کاربر، برای استفاده با آواتارها.

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (منسوخ شده)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های یونیتی که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_COARSE

از مواردی استفاده کنید که به این مجوز نیاز دارند

نمایش وضعیت، وضعیت و جهت گیری چشم کاربر، مانند استفاده با آواتارها. هنگامی که به داده های ردیابی چشم با دقت پایین نیاز است از این مجوز استفاده کنید.

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (منسوخ شده)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های یونیتی که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_FINE

از مواردی استفاده کنید که به این مجوز نیاز دارند

نگاه چشم برای انتخاب، ورودی، و تعامل

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_EXT_eye_gaze_interaction

ویژگی های یونیتی که به این مجوز نیاز دارند

تعامل بینایی چشم

android.permission.FACE_TRACKING

از مواردی استفاده کنید که به این مجوز نیاز دارند

ردیابی و رندر حالات چهره

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

برنامه های افزودنی OpenXR که به این مجوز نیاز دارند

XR_ANDROID_face_tracking

ویژگی های یونیتی که به این مجوز نیاز دارند

XRFaceTrackingFeature

android.permission.HAND_TRACKING

از مواردی استفاده کنید که به این مجوز نیاز دارند

ردیابی موقعیت های مفصل دست و سرعت های زاویه ای و خطی. با استفاده از نمایش مش از دست های کاربر

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

حالت دست و حالت مفاصل

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_hand_mesh

XR_EXT_hand_tracking

ویژگی های یونیتی که به این مجوز نیاز دارند

XR Hands

XRHandMeshFeature

android.permission.SCENE_UNDERSTANDING

از مواردی استفاده کنید که به این مجوز نیاز دارند

تخمین نور؛ پخش گذر بر روی سطوح مش. انجام پرتوهای ردیابی در محیط. ردیابی هواپیما؛ ردیابی اشیا؛ کار با عمق برای تست انسداد و ضربه؛ لنگرهای مداوم

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_depth_texture

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های یونیتی که به این مجوز نیاز دارند

XRAnchorFeature

XRDepthTextureFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_COARSE

از مواردی استفاده کنید که به این مجوز نیاز دارند

تخمین نور؛ پخش گذر بر روی سطوح مش. انجام پرتوهای ردیابی در محیط. ردیابی هواپیما؛ ردیابی اشیا؛ لنگرهای مداوم

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

برنامه های افزودنی OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های یونیتی که به این مجوز نیاز دارند

XRAnchorFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_FINE

از مواردی استفاده کنید که به این مجوز نیاز دارند

بافت عمقی

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_depth_texture

ویژگی های یونیتی که به این مجوز نیاز دارند

XRDepthTextureFeature

از کیفیت برنامه Android XR اطمینان حاصل کنید

برای اطمینان از اینکه برنامه شما یک تجربه کاربری عالی ارائه می دهد، دستورالعمل های کیفیت برنامه Android XR ما را مرور کنید.

برنامه خود را برای Android XR بسته بندی و توزیع کنید

Android XR طیف گسترده ای از برنامه ها و تجربیات را از طریق Google Play به هدست های XR می آورد. در راهنمای بسته‌بندی و توزیع برنامه‌ها برای Android XR ، اطلاعاتی درباره شروع کار با Play Store و Play Console، انتشار آهنگ‌ها، آماده‌سازی بسته‌های برنامه Android و محدودیت‌های اندازه برنامه پیدا خواهید کرد.

،

Android XR توسعه‌ای از پلتفرم و اکوسیستم اندروید است. Android XR SDK به گونه ای طراحی شده است که به شما امکان می دهد برنامه های XR را با استفاده از چارچوب ها و ابزارهای آشنای Android یا با استفاده از استانداردهای باز مانند OpenXR و WebXR بسازید. همه برنامه های سازگار با موبایل یا صفحه نمایش بزرگ برای نصب روی هدست های XR از فروشگاه Play در دسترس خواهند بود. ملاحظات سازگاری را بررسی کنید تا ببینید آیا برنامه شما سازگار است یا خیر.

این راهنما زمینه های زیر را توضیح می دهد:

  • ابزارها و فناوری های توسعه خود را انتخاب کنید
  • طراحی اپلیکیشن برای اندروید XR
  • در حال پیکربندی فایل مانیفست برنامه شما
  • ملاحظات سازگاری مانیفست برنامه
  • آشنایی با مجوزهای اندروید XR
  • اطمینان از کیفیت برنامه Android XR
  • بسته بندی و توزیع برنامه شما برای Android XR

ابزارها و فناوری های توسعه خود را انتخاب کنید

هنگام ساخت یک برنامه برای Android XR، می‌توانید از میان پلتفرم‌ها و فناوری‌های توسعه زیر یکی را انتخاب کنید:

Jetpack XR SDK

Jetpack XR SDK شامل کتابخانه‌های Android XR Jetpack است که برای استفاده از قابلیت‌های منحصر به فرد دستگاه‌های XR ساخته شده‌اند. اگر می‌خواهید یکی از موارد زیر را انجام دهید، با این SDK شروع کنید:

  • یک برنامه تلفن همراه یا رایانه لوحی Android موجود را بهینه یا ارتقا دهید
  • با استفاده از Android Studio و Jetpack یک برنامه Android XR جدید بسازید

اگر از قبل با Android Jetpack توسعه می‌دهید، Jetpack XR SDK برای شما مناسب است. این طراحی شده است تا به طور یکپارچه با آن چارچوب ها و کتابخانه ها یکپارچه شود و به شما امکان می دهد از دانش موجود برای ایجاد تجربیات فراگیر XR استفاده کنید.

درباره توسعه با Jetpack XR SDK بیشتر بیاموزید .

وحدت

Unity Engine یک موتور توسعه سه بعدی بلادرنگ است که به هنرمندان، طراحان و توسعه دهندگان اجازه می دهد تا برای ایجاد تجربیات همهجانبه و تعاملی با یکدیگر همکاری کنند. پشتیبانی Unity از Android XR به شما سطح بالایی از کنترل را بر تجربیات سه بعدی که توسعه می‌دهید، می‌دهد، در حالی که از اکوسیستم توسعه‌دهنده و پشتیبانی OpenXR Unity بهره می‌برید.

اگر قبلاً یک تجربه XR ساخته شده با Unity دارید یا اگر با توسعه Unity آشنا هستید، با این گزینه شروع کنید.

درباره توسعه با Unity برای Android XR بیشتر بدانید .

OpenXR

OpenXR یک استاندارد باز و بدون حق امتیاز است که می تواند برای ایجاد تجربیات XR با کارایی بالا و چند پلتفرمی استفاده شود. Android XR از OpenXR 1.0 و 1.1 پشتیبانی می کند و ما در حال گسترش مشخصات با افزونه های جدید برای Android XR هستیم. از آنجا که Android XR بر اساس استانداردهای باز ساخته شده است، ابزارهای توسعه ای که از OpenXR و Android پشتیبانی می کنند باید با Android XR سازگار باشند.

درباره پشتیبانی OpenXR برای Android XR بیشتر بدانید .

WebXR

WebXR به شما امکان می دهد تجربیات همه جانبه ای برای وب ایجاد کنید. این امکان دسترسی به دستگاه های واقعیت مجازی و واقعیت افزوده را در مرورگرهای وب سازگار مانند Chrome در Android XR فراهم می کند.

اگر می خواهید یک تجربه XR برای وب بسازید یا اگر می خواهید قابلیت های XR را به یک برنامه وب اضافه کنید، با این گزینه شروع کنید. تجربه‌های موجود WebXR روی Android XR نیز کار خواهند کرد.

درباره ساختن برنامه های وب با WebXR بیشتر بیاموزید .

طراحی برای XR

XR سطح طراحی را فراتر از صفحه نمایش های تخت سنتی گسترش می دهد. شما می توانید تجربه های همه جانبه ای طراحی کنید که واقعیت فیزیکی و مجازی را با هم ترکیب کنند. چه در حال ساختن یک تجربه کاملاً جدید باشید و چه در حال افزودن عناصر فراگیر به یک برنامه موجود، راهنمای طراحی برای Android XR می تواند به شما در شروع کار کمک کند.

فایل مانیفست برنامه خود را پیکربندی کنید

مانند سایر پروژه های برنامه Android، برنامه Android XR شما باید دارای یک فایل AndroidManifest.xml با تنظیمات مانیفست خاص باشد. فایل مانیفست اطلاعات ضروری در مورد برنامه شما را برای ابزارهای ساخت Android، سیستم عامل Android و Google Play توضیح می دهد. برای اطلاعات بیشتر به راهنمای نمای کلی مانیفست برنامه مراجعه کنید.

برای برنامه‌های متمایز XR ، فایل مانیفست شما باید دارای عناصر و ویژگی‌های زیر باشد:

ویژگی PROPERTY_ACTIVITY_XR_START_MODE

ویژگی android:name="android.window.PROPERTY_ACTIVITY_XR_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_FULL_SPACE_UNMANAGED (فقط OpenXR)

XR_ACTIVITY_START_MODE_HOME_SPACE

(برنامه هایی که فقط با Jetpack XR SDK ساخته شده اند)

از این حالت شروع برای راه اندازی برنامه خود در Home Space استفاده کنید. در Home Space، چندین برنامه می توانند در کنار هم اجرا شوند، بنابراین کاربران می توانند چند کار را انجام دهند. هر برنامه اندرویدی تلفن همراه یا صفحه نمایش بزرگ می تواند در Home Space و همچنین برنامه های 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

(برنامه هایی که فقط با Jetpack XR SDK ساخته شده اند)

از این حالت شروع برای راه اندازی برنامه خود در فضای کامل استفاده کنید. در فضای کامل، تنها یک برنامه در یک زمان اجرا می شود، بدون محدودیت فضایی، و همه برنامه های دیگر پنهان هستند.


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

XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED

(برنامه های ساخته شده فقط با OpenXR)

برنامه‌های ساخته شده با OpenXR در فضای کامل راه‌اندازی می‌شوند و باید از حالت شروع XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED استفاده کنند. فضای کامل مدیریت نشده به Android XR سیگنال می دهد که برنامه از OpenXR استفاده می کند.


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

ویژگی های PackageManager برای برنامه های XR

وقتی برنامه ها را از طریق فروشگاه Google Play توزیع می کنید، می توانید ویژگی های سخت افزاری یا نرم افزاری مورد نیاز را در مانیفست برنامه مشخص کنید. عنصر uses-feature به Play Store اجازه می دهد تا برنامه های نمایش داده شده به کاربران را به درستی فیلتر کند.

ویژگی های زیر مختص برنامه های XR است.

android.software.xr.immersive

اگر برنامه شما پلتفرم Android XR را هدف قرار می دهد و فقط روی پلتفرم هایی اجرا می شود که از XR پشتیبانی می کنند، مقدار را روی true تنظیم کنید. اگر برنامه شما دارای برخی ویژگی‌های بهینه‌شده XR است اما می‌تواند روی دستگاه‌های غیر XR نیز اجرا شود، مقدار را روی false تنظیم کنید.

برنامه هایی که با OpenXR یا Unity ساخته شده اند باید این مقدار را روی true تنظیم کنند.

<uses-feature android:name="android.software.xr.immersive" android:required="true" />

android.hardware.xr.input.controller

این ویژگی نشان می دهد که برنامه برای عملکرد صحیح به ورودی یک کنترلر حرکتی با دقت بالا و 6DoF (درجه آزادی) نیاز دارد. اگر برنامه شما از کنترلرها پشتیبانی می کند و نمی تواند بدون آنها کار کند، مقدار را روی true تنظیم کنید. اگر برنامه شما از کنترلرها پشتیبانی می کند اما می تواند بدون آنها کار کند، آن را روی false تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />

android.hardware.xr.input.hand_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح به ردیابی دست با وفاداری بالا از جمله موقعیت، جهت و سرعت مفاصل در دست کاربر نیاز دارد. اگر برنامه شما از ردیابی دست پشتیبانی می کند و بدون آن نمی تواند کار کند، مقدار را روی true تنظیم کنید. اگر برنامه شما از ردیابی دست پشتیبانی می کند، اما می تواند بدون آن کار کند، آن را روی false تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />

android.hardware.xr.input.eye_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح ورودی به ردیابی چشم با وفاداری بالا نیاز دارد. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند و بدون آن نمی تواند کار کند، مقدار را روی true تنظیم کنید. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند، اما می تواند بدون آن کار کند، آن را روی false تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />

ملاحظات سازگاری مانیفست برنامه برای برنامه های موبایل و صفحه نمایش بزرگ

همانطور که در بخش ویژگی‌های PackageManager برای برنامه‌های XR توضیح داده شد، برنامه‌ها اعلام می‌کنند که از یک ویژگی با اعلام آن در عنصر <uses-feature> در مانیفست برنامه استفاده می‌کنند. برخی از ویژگی ها، مانند تلفن یا GPS، ممکن است با همه دستگاه ها سازگار نباشند.

ویژگی های پشتیبانی نشده

فروشگاه 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

درک مجوزهای XR

درست مانند برنامه‌های موجود در دستگاه‌های تلفن همراه و سایر عوامل شکل، برخی از قابلیت‌های ارائه شده توسط برنامه‌های XR ممکن است به برنامه شما نیاز داشته باشد که مجوزها را در فایل AndroidManifest برنامه شما اعلام کند . در مورد مجوزهای خطرناک، برنامه شما ممکن است نیاز به درخواست مجوزهای زمان اجرا داشته باشد. برای اطلاعات عمیق تر، مجوزها را در Android و بهترین شیوه های مجوز را بخوانید.

مجوز برای ویژگی های XR

مجوزهای زیر ممکن است توسط برنامه های XR استفاده شود. همه مجوزهای موجود در این بخش مجوزهای خطرناکی در نظر گرفته می شوند، بنابراین باید آنها را در مانیفست برنامه خود اعلام کنید و در زمان اجرا درخواست کنید.

android.permission.EYE_TRACKING

از مواردی استفاده کنید که به این مجوز نیاز دارند

نمایش وضعیت و جهت گیری چشم کاربر، برای استفاده با آواتارها.

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (منسوخ شده)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های یونیتی که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_COARSE

از مواردی استفاده کنید که به این مجوز نیاز دارند

نمایش وضعیت، وضعیت و جهت گیری چشم کاربر، مانند استفاده با آواتارها. هنگامی که به داده های ردیابی چشم با دقت پایین نیاز است از این مجوز استفاده کنید.

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (منسوخ شده)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های یونیتی که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_FINE

از مواردی استفاده کنید که به این مجوز نیاز دارند

نگاه چشم برای انتخاب، ورودی، و تعامل

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_EXT_eye_gaze_interaction

ویژگی های یونیتی که به این مجوز نیاز دارند

تعامل بینایی چشم

android.permission.FACE_TRACKING

از مواردی استفاده کنید که به این مجوز نیاز دارند

ردیابی و رندر حالات چهره

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

برنامه های افزودنی OpenXR که به این مجوز نیاز دارند

XR_ANDROID_face_tracking

ویژگی های یونیتی که به این مجوز نیاز دارند

XRFaceTrackingFeature

android.permission.HAND_TRACKING

از مواردی استفاده کنید که به این مجوز نیاز دارند

ردیابی موقعیت های مفصل دست و سرعت های زاویه ای و خطی. با استفاده از نمایش مش از دست های کاربر

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

حالت دست و حالت مفاصل

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_hand_mesh

XR_EXT_hand_tracking

ویژگی های یونیتی که به این مجوز نیاز دارند

XR Hands

XRHandMeshFeature

android.permission.SCENE_UNDERSTANDING

از مواردی استفاده کنید که به این مجوز نیاز دارند

تخمین نور؛ پخش گذر بر روی سطوح مش. انجام پرتوهای ردیابی در محیط. ردیابی هواپیما؛ ردیابی اشیا؛ کار با عمق برای تست انسداد و ضربه؛ لنگرهای مداوم

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

برنامه های افزودنی OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_depth_texture

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های یونیتی که به این مجوز نیاز دارند

XRAnchorFeature

XRDepthTextureFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_COARSE

از مواردی استفاده کنید که به این مجوز نیاز دارند

تخمین نور؛ پخش گذر بر روی سطوح مش. انجام پرتوهای ردیابی در محیط. ردیابی هواپیما؛ ردیابی اشیا؛ لنگرهای مداوم

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

برنامه های افزودنی OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های یونیتی که به این مجوز نیاز دارند

XRAnchorFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_FINE

از مواردی استفاده کنید که به این مجوز نیاز دارند

بافت عمقی

ویژگی‌های Jetpack XR SDK که به این مجوز نیاز دارند

n/a

برنامه های افزودنی OpenXR که به این مجوز نیاز دارند

XR_ANDROID_depth_texture

ویژگی های یونیتی که به این مجوز نیاز دارند

XRDepthTextureFeature

از کیفیت برنامه Android XR اطمینان حاصل کنید

برای اطمینان از اینکه برنامه شما یک تجربه کاربری عالی ارائه می دهد، دستورالعمل های کیفیت برنامه Android XR ما را مرور کنید.

برنامه خود را برای Android XR بسته بندی و توزیع کنید

Android XR طیف گسترده ای از برنامه ها و تجربیات را از طریق Google Play به هدست های XR می آورد. در راهنمای بسته‌بندی و توزیع برنامه‌ها برای Android XR ، اطلاعاتی درباره شروع کار با Play Store و Play Console، انتشار آهنگ‌ها، آماده‌سازی بسته‌های برنامه Android و محدودیت‌های اندازه برنامه پیدا خواهید کرد.

،

Android XR توسعه‌ای از پلتفرم و اکوسیستم اندروید است. Android XR SDK به گونه ای طراحی شده است که به شما امکان می دهد برنامه های XR را با استفاده از چارچوب ها و ابزارهای آشنای Android یا با استفاده از استانداردهای باز مانند OpenXR و WebXR بسازید. همه برنامه های سازگار با موبایل یا صفحه نمایش بزرگ برای نصب روی هدست های XR از فروشگاه Play در دسترس خواهند بود. ملاحظات سازگاری را بررسی کنید تا ببینید آیا برنامه شما سازگار است یا خیر.

این راهنما زمینه های زیر را توضیح می دهد:

  • ابزارها و فناوری های توسعه خود را انتخاب کنید
  • طراحی اپلیکیشن برای اندروید XR
  • در حال پیکربندی فایل مانیفست برنامه شما
  • ملاحظات سازگاری مانیفست برنامه
  • آشنایی با مجوزهای اندروید XR
  • اطمینان از کیفیت برنامه Android XR
  • بسته بندی و توزیع برنامه شما برای Android XR

ابزارها و فناوری های توسعه خود را انتخاب کنید

هنگام ساخت یک برنامه برای Android XR، می‌توانید از میان پلتفرم‌ها و فناوری‌های توسعه زیر یکی را انتخاب کنید:

Jetpack XR SDK

Jetpack XR SDK شامل کتابخانه‌های Android XR Jetpack است که برای استفاده از قابلیت‌های منحصر به فرد دستگاه‌های XR ساخته شده‌اند. اگر می‌خواهید یکی از موارد زیر را انجام دهید، با این SDK شروع کنید:

  • یک برنامه تلفن همراه یا رایانه لوحی Android موجود را بهینه یا ارتقا دهید
  • با استفاده از Android Studio و Jetpack یک برنامه Android XR جدید بسازید

اگر از قبل با Android Jetpack توسعه می‌دهید، Jetpack XR SDK برای شما مناسب است. این طراحی شده است تا به طور یکپارچه با آن چارچوب ها و کتابخانه ها یکپارچه شود و به شما امکان می دهد از دانش موجود برای ایجاد تجربیات فراگیر XR استفاده کنید.

درباره توسعه با Jetpack XR SDK بیشتر بیاموزید .

وحدت

Unity Engine یک موتور توسعه سه بعدی بلادرنگ است که به هنرمندان، طراحان و توسعه دهندگان اجازه می دهد تا برای ایجاد تجربیات همهجانبه و تعاملی با یکدیگر همکاری کنند. پشتیبانی Unity از Android XR به شما سطح بالایی از کنترل را بر تجربیات سه بعدی که توسعه می‌دهید، می‌دهد، در حالی که از اکوسیستم توسعه‌دهنده و پشتیبانی OpenXR Unity بهره می‌برید.

اگر قبلاً یک تجربه XR ساخته شده با Unity دارید یا اگر با توسعه Unity آشنا هستید، با این گزینه شروع کنید.

درباره توسعه با Unity برای Android XR بیشتر بدانید .

OpenXR

OpenXR یک استاندارد باز و بدون حق امتیاز است که می تواند برای ایجاد تجربیات XR با کارایی بالا و چند پلتفرمی استفاده شود. Android XR از OpenXR 1.0 و 1.1 پشتیبانی می کند و ما در حال گسترش مشخصات با افزونه های جدید برای Android XR هستیم. از آنجا که Android XR بر اساس استانداردهای باز ساخته شده است، ابزارهای توسعه ای که از OpenXR و Android پشتیبانی می کنند باید با Android XR سازگار باشند.

درباره پشتیبانی OpenXR برای Android XR بیشتر بدانید .

WebXR

WebXR به شما امکان می دهد تجربیات همه جانبه ای برای وب ایجاد کنید. این امکان دسترسی به دستگاه های واقعیت مجازی و واقعیت افزوده را در مرورگرهای وب سازگار مانند Chrome در Android XR فراهم می کند.

اگر می خواهید یک تجربه XR برای وب بسازید یا اگر می خواهید قابلیت های XR را به یک برنامه وب اضافه کنید، با این گزینه شروع کنید. تجربه‌های موجود WebXR روی Android XR نیز کار خواهند کرد.

درباره ساختن برنامه های وب با WebXR بیشتر بیاموزید .

طراحی برای XR

XR سطح طراحی را فراتر از صفحه نمایش های تخت سنتی گسترش می دهد. شما می توانید تجربه های همه جانبه ای طراحی کنید که واقعیت فیزیکی و مجازی را با هم ترکیب کنند. چه در حال ساختن یک تجربه کاملاً جدید باشید و چه در حال افزودن عناصر فراگیر به یک برنامه موجود، راهنمای طراحی برای Android XR می تواند به شما در شروع کار کمک کند.

فایل مانیفست برنامه خود را پیکربندی کنید

مانند سایر پروژه های برنامه Android، برنامه Android XR شما باید دارای یک فایل AndroidManifest.xml با تنظیمات مانیفست خاص باشد. فایل مانیفست اطلاعات ضروری در مورد برنامه شما را برای ابزارهای ساخت Android، سیستم عامل Android و Google Play توضیح می دهد. برای اطلاعات بیشتر به راهنمای نمای کلی مانیفست برنامه مراجعه کنید.

برای برنامه‌های متمایز XR ، فایل مانیفست شما باید دارای عناصر و ویژگی‌های زیر باشد:

ویژگی PROPERTY_ACTIVITY_XR_START_MODE

ویژگی android:name="android.window.PROPERTY_ACTIVITY_XR_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_FULL_SPACE_UNMANAGED (فقط OpenXR)

XR_ACTIVITY_START_MODE_HOME_SPACE

(برنامه هایی که فقط با Jetpack XR SDK ساخته شده اند)

از این حالت شروع برای راه اندازی برنامه خود در Home Space استفاده کنید. در Home Space، چندین برنامه می توانند در کنار هم اجرا شوند، بنابراین کاربران می توانند چند کار را انجام دهند. هر برنامه اندرویدی تلفن همراه یا صفحه نمایش بزرگ می تواند در Home Space و همچنین برنامه های 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

(برنامه هایی که فقط با Jetpack XR SDK ساخته شده اند)

از این حالت شروع برای راه اندازی برنامه خود در فضای کامل استفاده کنید. در فضای کامل ، فقط یک برنامه به طور همزمان اجرا می شود ، بدون مرز فضایی و همه برنامه های دیگر پنهان است.


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

xr_activity_start_mode_full_space_unmanaged

(برنامه های ساخته شده فقط با OpenXR)

برنامه های ساخته شده با راه اندازی OpenXR در فضای کامل و باید از XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED حالت شروع استفاده کنند. سیگنال های فضای کامل بدون کنترل به Android XR برنامه از OpenXR استفاده می کند.


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

ویژگی های PackageManager برای برنامه های XR

هنگامی که برنامه ها را از طریق فروشگاه Google Play توزیع می کنید ، می توانید ویژگی های سخت افزاری یا نرم افزاری مورد نیاز را در مانیفست برنامه مشخص کنید. عنصر uses-feature به فروشگاه Play اجازه می دهد تا برنامه هایی را که به کاربران نشان داده شده است ، به طور مناسب فیلتر کند.

ویژگی های زیر مخصوص برنامه های XR است.

android.software.xr.immersive

اگر برنامه شما پلت فرم Android XR را هدف قرار داده و فقط بر روی سیستم عامل هایی که از XR پشتیبانی می کنند اجرا می شود ، مقدار را روی آن تنظیم کنید. اگر برنامه شما دارای برخی از ویژگی های بهینه سازی XR است اما می تواند در دستگاه های غیر XR نیز اجرا شود ، مقدار را روی False تنظیم کنید.

برنامه های ساخته شده با OpenXR یا وحدت لازم است که این مقدار را درست تنظیم کنند.

<uses-feature android:name="android.software.xr.immersive" android:required="true" />

android.hardware.xr.input.controller

این ویژگی نشان می دهد که برنامه برای عملکرد صحیح نیاز به ورودی با دقت بالا ، 6DOF (درجه آزادی) دارد. اگر برنامه شما از کنترل کننده ها پشتیبانی می کند و بدون آنها کار نمی کند ، مقدار را روی درست تنظیم کنید. اگر برنامه شما از کنترل کننده ها پشتیبانی می کند اما می تواند بدون آنها کار کند ، آن را به False تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />

android.hardware.xr.input.hand_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح از جمله موقعیت ، جهت گیری و سرعت اتصالات در دست کاربر ، به ردیابی دست وفاداری بالا نیاز دارد. اگر برنامه شما از ردیابی دستی پشتیبانی می کند و بدون آن کار نمی کند ، مقدار را روی True تنظیم کنید. اگر برنامه شما از ردیابی دستی پشتیبانی می کند ، اما می تواند بدون آن کار کند ، آن را به False تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />

android.hardware.xr.input.eye_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح نیاز به ردیابی چشم با وفاداری بالا دارد. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند و بدون آن کار نمی کند ، مقدار را روی True تنظیم کنید. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند ، اما می تواند بدون آن کار کند ، آن را به False تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />

برنامه های سازگاری برنامه برای برنامه های صفحه نمایش موبایل و بزرگ

همانطور که در بخش برنامه های PackageManager برای بخش XR Apps توضیح داده شده است ، برنامه ها اعلام می کنند که با اعلام آن در یک عنصر <uses-feature> در مانیفست برنامه از یک ویژگی استفاده می کنند. برخی از ویژگی ها ، مانند تلفن یا GPS ، ممکن است با همه دستگاه ها سازگار نباشد.

ویژگی های پشتیبانی نشده

Google Play Store با استفاده از اعلامیه های ویژگی 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

مجوزهای XR را درک کنید

درست مانند برنامه های موجود در دستگاه های تلفن همراه و سایر فاکتورهای فرم ، برخی از قابلیت های ارائه شده توسط برنامه های XR ممکن است برنامه شما را ملزم به اعلام مجوزها در پرونده AndroidManifest برنامه شما کند. در مورد مجوزهای خطرناک ، برنامه شما ممکن است نیاز به درخواست مجوزهای زمان اجرا داشته باشد. برای اطلاعات عمیق تر ، مجوزها را در مورد Android و بهترین روش های مجوز بخوانید.

مجوز برای ویژگی های XR

مجوزهای زیر ممکن است توسط برنامه های XR استفاده شود. تمام مجوزهای موجود در این بخش مجوزهای خطرناک در نظر گرفته می شوند ، بنابراین باید آنها را در برنامه خود آشکار کنید و در زمان اجرا از آنها درخواست کنید.

android.permission.EYE_TRACKING

از مواردی که به این مجوز نیاز دارید استفاده کنید

نمایندگی و جهت گیری چشم کاربر ، برای استفاده با آواتارها.

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (مستهلک)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های وحدت که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_COARSE

از مواردی که به این مجوز نیاز دارید استفاده کنید

نمایندگی ، وضعیت و جهت گیری چشم کاربر ، مانند استفاده از آواتارها. در صورت نیاز به داده های ردیابی چشم با دقت پایین ، از این مجوز استفاده کنید.

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (مستهلک)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های وحدت که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_FINE

از مواردی که به این مجوز نیاز دارید استفاده کنید

نگاه چشم برای انتخاب ، ورودی و تعامل

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_EXT_eye_gaze_interaction

ویژگی های وحدت که به این مجوز نیاز دارند

تعامل چشم چشم

android.permission.FACE_TRACKING

از مواردی که به این مجوز نیاز دارید استفاده کنید

ردیابی و ارائه بیان صورت

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_face_tracking

ویژگی های وحدت که به این مجوز نیاز دارند

XRFaceTrackingFeature

android.permission.HAND_TRACKING

از مواردی که به این مجوز نیاز دارید استفاده کنید

ردیابی مفصل دستی و سرعت زاویه ای و خطی. با استفاده از نمای مش از دست کاربر

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

حالت دست و مفصل

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_hand_mesh

XR_EXT_hand_tracking

ویژگی های وحدت که به این مجوز نیاز دارند

XR Hands

XRHandMeshFeature

android.permission.SCENE_UNDERSTANDING

از مواردی که به این مجوز نیاز دارید استفاده کنید

تخمین نور ؛ پیش بینی عبور بر روی سطوح مش ؛ انجام Raycasts در برابر خطوط در محیط ؛ ردیابی هواپیما ؛ ردیابی شی ؛ کار با عمق برای انسداد و آزمایش ضربه. لنگرهای مداوم

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_depth_texture

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های وحدت که به این مجوز نیاز دارند

XRAnchorFeature

XRDepthTextureFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_COARSE

از مواردی که به این مجوز نیاز دارید استفاده کنید

تخمین نور ؛ پیش بینی عبور بر روی سطوح مش ؛ انجام Raycasts در برابر خطوط در محیط ؛ ردیابی هواپیما ؛ ردیابی شی ؛ لنگرهای مداوم

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های وحدت که به این مجوز نیاز دارند

XRAnchorFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_FINE

از مواردی که به این مجوز نیاز دارید استفاده کنید

بافت عمقی

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_depth_texture

ویژگی های وحدت که به این مجوز نیاز دارند

XRDepthTextureFeature

از کیفیت برنامه Android XR اطمینان حاصل کنید

برای اطمینان از برنامه شما یک تجربه کاربری عالی ، دستورالعمل های کیفیت برنامه Android XR ما را مرور کنید.

برنامه خود را برای Android XR بسته و توزیع کنید

Android XR طیف گسترده ای از برنامه ها و تجربیات را از طریق Google Play به هدست های XR می آورد. در راهنمای بسته بندی و توزیع برنامه ها برای Android XR ، اطلاعاتی در مورد شروع کار با کنسول Play و Play Console ، انتشار آهنگ ، تهیه بسته های برنامه Android و محدودیت های اندازه برنامه پیدا خواهید کرد.

،

Android XR پسوند پلت فرم Android و اکوسیستم است. Android XR SDK به گونه ای طراحی شده است که به شما امکان می دهد برنامه های XR را با استفاده از چارچوب ها و ابزارهای Android آشنا یا با استفاده از استانداردهای باز مانند OpenXR و WebXR بسازید. کلیه برنامه های سازگار با موبایل یا صفحه نمایش بزرگ برای نصب روی هدست های XR از فروشگاه Play در دسترس خواهند بود. ملاحظات سازگاری را مرور کنید تا ببینید برنامه شما سازگار است یا خیر.

این راهنما زمینه های زیر را توضیح می دهد:

  • انتخاب ابزارها و فناوری های توسعه خود
  • طراحی برنامه ها برای Android XR
  • پیکربندی پرونده مانیفست برنامه خود
  • ملاحظات سازگاری برنامه
  • درک مجوزهای Android XR
  • اطمینان از کیفیت برنامه Android XR
  • بسته بندی و توزیع برنامه خود برای Android XR

ابزارها و فناوری های توسعه خود را انتخاب کنید

هنگام ساخت برنامه برای Android XR ، می توانید از سیستم عامل ها و فناوری های توسعه زیر انتخاب کنید:

Jetpack XR SDK

Jetpack XR SDK شامل کتابخانه های Android XR Jetpack است که برای استفاده از قابلیت های منحصر به فرد دستگاه های XR ساخته شده است. اگر می خواهید هر یک از موارد زیر را انجام دهید با این SDK شروع کنید:

  • برنامه موبایل یا تبلت موجود در Android را بهینه یا بهینه کنید
  • با استفاده از Android Studio و JetPack یک برنامه جدید Android XR بسازید

اگر در حال توسعه با Android Jetpack هستید ، JetPack XR SDK مناسب برای شما است. این طراحی شده است تا یکپارچه با آن چارچوب ها و کتابخانه ها ادغام شود و به شما امکان می دهد از دانش موجود برای ایجاد تجربیات همهجانبه XR استفاده کنید.

در مورد توسعه با JetPack XR SDK بیشتر بدانید .

وحدت

Engine Engine یک موتور توسعه سه بعدی در زمان واقعی است که به هنرمندان ، طراحان و توسعه دهندگان اجازه می دهد تا برای ایجاد تجربیات همهجانبه و تعاملی همکاری کنند. پشتیبانی Android XR Unity ، کنترل بالایی از تجربیات سه بعدی شما را به شما می دهد ، در حالی که از پشتیبانی OpenXR و اکوسیستم توسعه دهنده Unity بهره مند می شوید.

اگر قبلاً تجربه XR ساخته شده با وحدت یا اگر با توسعه وحدت آشنا هستید ، با این گزینه شروع کنید.

در مورد توسعه با وحدت برای Android XR بیشتر بدانید .

OpenXR

OpenXR یک استاندارد آزاد و بدون حق امتیاز است که می تواند برای ساخت تجربیات با کارایی بالا و چند پلتفرمی XR استفاده شود. Android XR از OpenXR 1.0 و 1.1 پشتیبانی می کند ، و ما مشخصات خود را با پسوندهای جدید برای Android XR گسترش می دهیم. از آنجا که Android XR با استانداردهای باز ساخته شده است ، ابزارهای توسعه ای که از OpenXR و Android پشتیبانی می کنند باید با Android XR سازگار باشند.

در مورد پشتیبانی OpenXR از Android XR بیشتر بدانید .

WebXR

WebXR به شما امکان می دهد تجربیات همهجانبه را برای وب بسازید. این امکان دسترسی به دستگاه های VR و AR را در مرورگرهای وب سازگار مانند Chrome در Android XR فراهم می کند.

اگر می خواهید یک تجربه XR برای وب ایجاد کنید یا می خواهید قابلیت XR را به یک برنامه وب اضافه کنید ، با این گزینه شروع کنید. تجربیات موجود در WebXR نیز روی Android XR کار خواهد کرد.

در مورد ساخت برنامه های وب با WebXR بیشتر بدانید .

طراحی برای XR

XR سطح طراحی را فراتر از صفحه های مسطح سنتی گسترش می دهد. شما می توانید تجربیات همهجانبه ای را طراحی کنید که واقعیت فیزیکی و مجازی را در هم می آمیزد. این که آیا شما در حال ایجاد یک تجربه جدید و یا اضافه کردن عناصر همهجانبه به یک برنامه موجود هستید ، طراحی راهنمای Android XR می تواند به شما در شروع کار کمک کند.

پرونده مانیفست برنامه خود را پیکربندی کنید

مانند سایر پروژه های برنامه Android ، برنامه Android XR شما باید دارای یک فایل AndroidManifest.xml با تنظیمات مانیفست خاص باشد. فایل مانیفست اطلاعات ضروری در مورد برنامه شما را به ابزارهای Android Build ، سیستم عامل Android و Google Play شرح می دهد. برای اطلاعات بیشتر به راهنمای نمای کلی برنامه مانیفست مراجعه کنید.

برای برنامه های متمایز XR ، پرونده مانیفست شما باید حاوی عناصر و ویژگی های زیر باشد:

Property_activity_xr_start_mode

android:name="android.window.PROPERTY_ACTIVITY_XR_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_FULL_SPACE_UNMANAGED (فقط OpenXR)

xr_activity_start_mode_home_space

(برنامه های ساخته شده با Jetpack XR SDK)

برای راه اندازی برنامه خود در فضای خانگی از این حالت شروع استفاده کنید. در فضای خانگی ، چندین برنامه می توانند در کنار هم اجرا شوند ، بنابراین کاربران می توانند چند وظیفه ای داشته باشند. هر برنامه 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

(برنامه های ساخته شده با Jetpack XR SDK)

برای راه اندازی برنامه خود در فضای کامل از این حالت شروع استفاده کنید. در فضای کامل ، فقط یک برنامه به طور همزمان اجرا می شود ، بدون مرز فضایی و همه برنامه های دیگر پنهان است.


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

xr_activity_start_mode_full_space_unmanaged

(برنامه های ساخته شده فقط با OpenXR)

برنامه های ساخته شده با راه اندازی OpenXR در فضای کامل و باید از XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED حالت شروع استفاده کنند. سیگنال های فضای کامل بدون کنترل به Android XR برنامه از OpenXR استفاده می کند.


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

ویژگی های PackageManager برای برنامه های XR

هنگامی که برنامه ها را از طریق فروشگاه Google Play توزیع می کنید ، می توانید ویژگی های سخت افزاری یا نرم افزاری مورد نیاز را در مانیفست برنامه مشخص کنید. عنصر uses-feature به فروشگاه Play اجازه می دهد تا برنامه هایی را که به کاربران نشان داده شده است ، به طور مناسب فیلتر کند.

ویژگی های زیر مخصوص برنامه های XR است.

android.software.xr.immersive

اگر برنامه شما پلت فرم Android XR را هدف قرار داده و فقط بر روی سیستم عامل هایی که از XR پشتیبانی می کنند اجرا می شود ، مقدار را روی آن تنظیم کنید. اگر برنامه شما دارای برخی از ویژگی های بهینه سازی XR است اما می تواند در دستگاه های غیر XR نیز اجرا شود ، مقدار را روی False تنظیم کنید.

برنامه های ساخته شده با OpenXR یا وحدت لازم است که این مقدار را درست تنظیم کنند.

<uses-feature android:name="android.software.xr.immersive" android:required="true" />

android.hardware.xr.input.controller

این ویژگی نشان می دهد که برنامه برای عملکرد صحیح نیاز به ورودی با دقت بالا ، 6DOF (درجه آزادی) دارد. اگر برنامه شما از کنترل کننده ها پشتیبانی می کند و بدون آنها کار نمی کند ، مقدار را روی درست تنظیم کنید. اگر برنامه شما از کنترل کننده ها پشتیبانی می کند اما می تواند بدون آنها کار کند ، آن را به False تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />

android.hardware.xr.input.hand_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح از جمله موقعیت ، جهت گیری و سرعت اتصالات در دست کاربر ، به ردیابی دست وفاداری بالا نیاز دارد. اگر برنامه شما از ردیابی دستی پشتیبانی می کند و بدون آن کار نمی کند ، مقدار را روی True تنظیم کنید. اگر برنامه شما از ردیابی دستی پشتیبانی می کند ، اما می تواند بدون آن کار کند ، آن را به False تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />

android.hardware.xr.input.eye_tracking

این پرچم نشان می دهد که برنامه برای عملکرد صحیح نیاز به ردیابی چشم با وفاداری بالا دارد. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند و بدون آن کار نمی کند ، مقدار را روی True تنظیم کنید. اگر برنامه شما از ردیابی چشم برای ورودی پشتیبانی می کند ، اما می تواند بدون آن کار کند ، آن را به False تنظیم کنید.

<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />

برنامه های سازگاری برنامه برای برنامه های صفحه نمایش موبایل و بزرگ

همانطور که در بخش برنامه های PackageManager برای بخش XR Apps توضیح داده شده است ، برنامه ها اعلام می کنند که با اعلام آن در یک عنصر <uses-feature> در مانیفست برنامه از یک ویژگی استفاده می کنند. برخی از ویژگی ها ، مانند تلفن یا GPS ، ممکن است با همه دستگاه ها سازگار نباشد.

ویژگی های پشتیبانی نشده

Google Play Store با استفاده از اعلامیه های ویژگی 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

مجوزهای XR را درک کنید

درست مانند برنامه های موجود در دستگاه های تلفن همراه و سایر فاکتورهای فرم ، برخی از قابلیت های ارائه شده توسط برنامه های XR ممکن است برنامه شما را ملزم به اعلام مجوزها در پرونده AndroidManifest برنامه شما کند. در مورد مجوزهای خطرناک ، برنامه شما ممکن است نیاز به درخواست مجوزهای زمان اجرا داشته باشد. برای اطلاعات عمیق تر ، مجوزها را در مورد Android و بهترین روش های مجوز بخوانید.

مجوز برای ویژگی های XR

مجوزهای زیر ممکن است توسط برنامه های XR استفاده شود. تمام مجوزهای موجود در این بخش مجوزهای خطرناک در نظر گرفته می شوند ، بنابراین باید آنها را در برنامه خود آشکار کنید و در زمان اجرا از آنها درخواست کنید.

android.permission.EYE_TRACKING

از مواردی که به این مجوز نیاز دارید استفاده کنید

نمایندگی و جهت گیری چشم کاربر ، برای استفاده با آواتارها.

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (مستهلک)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های وحدت که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_COARSE

از مواردی که به این مجوز نیاز دارید استفاده کنید

نمایندگی ، وضعیت و جهت گیری چشم کاربر ، مانند استفاده از آواتارها. در صورت نیاز به داده های ردیابی چشم با دقت پایین ، از این مجوز استفاده کنید.

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_avatar_eyes (مستهلک)

XR_ANDROID_eye_tracking (برای ردیابی درشت)

ویژگی های وحدت که به این مجوز نیاز دارند

Android XR: AR Face

android.permission.EYE_TRACKING_FINE

از مواردی که به این مجوز نیاز دارید استفاده کنید

نگاه چشم برای انتخاب ، ورودی و تعامل

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_EXT_eye_gaze_interaction

ویژگی های وحدت که به این مجوز نیاز دارند

تعامل چشم چشم

android.permission.FACE_TRACKING

از مواردی که به این مجوز نیاز دارید استفاده کنید

ردیابی و ارائه بیان صورت

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_face_tracking

ویژگی های وحدت که به این مجوز نیاز دارند

XRFaceTrackingFeature

android.permission.HAND_TRACKING

از مواردی که به این مجوز نیاز دارید استفاده کنید

ردیابی مفصل دستی و سرعت زاویه ای و خطی. با استفاده از نمای مش از دست کاربر

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

حالت دست و مفصل

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_hand_mesh

XR_EXT_hand_tracking

ویژگی های وحدت که به این مجوز نیاز دارند

XR Hands

XRHandMeshFeature

android.permission.SCENE_UNDERSTANDING

از مواردی که به این مجوز نیاز دارید استفاده کنید

تخمین نور ؛ پیش بینی عبور بر روی سطوح مش ؛ انجام Raycasts در برابر خطوط در محیط ؛ ردیابی هواپیما ؛ ردیابی شی ؛ کار با عمق برای انسداد و آزمایش ضربه. لنگرهای مداوم

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_depth_texture

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های وحدت که به این مجوز نیاز دارند

XRAnchorFeature

XRDepthTextureFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_COARSE

از مواردی که به این مجوز نیاز دارید استفاده کنید

تخمین نور ؛ پیش بینی عبور بر روی سطوح مش ؛ انجام Raycasts در برابر خطوط در محیط ؛ ردیابی هواپیما ؛ ردیابی شی ؛ لنگرهای مداوم

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

ردیابی هواپیما

تست ضربه بزنید

پایداری لنگر

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_anchor_persistence

XR_ANDROID_light_estimation

XR_ANDROID_composition_layer_passthrough_mesh

XR_ANDROID_raycast

XR_ANDROID_trackables

XR_ANDROID_trackables_object

ویژگی های وحدت که به این مجوز نیاز دارند

XRAnchorFeature

XRLightEstimationFeature

XRPassthroughFeature

XRTrackableFeature

XRObjectTrackingFeature

android.permission.SCENE_UNDERSTANDING_FINE

از مواردی که به این مجوز نیاز دارید استفاده کنید

بافت عمقی

Jetpack XR SDK ویژگی هایی که به این مجوز نیاز دارند

n/a

پسوندهای OpenXR که به این مجوز نیاز دارند

XR_ANDROID_depth_texture

ویژگی های وحدت که به این مجوز نیاز دارند

XRDepthTextureFeature

از کیفیت برنامه Android XR اطمینان حاصل کنید

برای اطمینان از برنامه شما یک تجربه کاربری عالی ، دستورالعمل های کیفیت برنامه Android XR ما را مرور کنید.

برنامه خود را برای Android XR بسته و توزیع کنید

Android XR طیف گسترده ای از برنامه ها و تجربیات را از طریق Google Play به هدست های XR می آورد. در راهنمای بسته بندی و توزیع برنامه ها برای Android XR ، اطلاعاتی در مورد شروع کار با کنسول Play و Play Console ، انتشار آهنگ ، تهیه بسته های برنامه Android و محدودیت های اندازه برنامه پیدا خواهید کرد.