অ্যান্ড্রয়েড স্টুডিও ইনস্টল এবং কনফিগার করার পরে, একটি প্রকল্প তৈরি করার পরে এবং জেটপ্যাক এক্সআর এসডিকে সেট আপ করার পরে , আপনি নিমজ্জনকারী অভিজ্ঞতা তৈরি শুরু করতে প্রস্তুত।
আপনার অ্যাপটি তৈরির সমস্ত উপায় অন্বেষণ শুরু করার আগে, তথ্য পর্যালোচনা করুন এবং নিম্নলিখিত বিভাগগুলিতে যেকোনো কাজ সম্পন্ন করুন যাতে নিশ্চিত হন যে আপনার অ্যাপটি নিমজ্জিত XR ডেভেলপমেন্টের জন্য কনফিগার করা আছে।
আপনার অ্যাপের ম্যানিফেস্ট ফাইল কনফিগার করুন
অন্যান্য অ্যান্ড্রয়েড অ্যাপ প্রোজেক্টের মতো, আপনার অ্যান্ড্রয়েড এক্সআর অ্যাপেও নির্দিষ্ট ম্যানিফেস্ট সেটিংস সহ একটি AndroidManifest.xml ফাইল থাকতে হবে। ম্যানিফেস্ট ফাইলটি অ্যান্ড্রয়েড বিল্ড টুল, অ্যান্ড্রয়েড অপারেটিং সিস্টেম এবং গুগল প্লেতে আপনার অ্যাপ সম্পর্কে প্রয়োজনীয় তথ্য বর্ণনা করে। আরও তথ্যের জন্য অ্যাপ ম্যানিফেস্ট ওভারভিউ গাইড দেখুন।
XR ডিফারেনশিয়াল অ্যাপের জন্য, আপনার ম্যানিফেস্ট ফাইলে নিম্নলিখিত উপাদান এবং বৈশিষ্ট্য থাকতে হবে:
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 সম্পর্কে
হোম স্পেসে আপনার অ্যাপ চালু করতে এই স্টার্ট মোডটি ব্যবহার করুন। হোম স্পেসে, একাধিক অ্যাপ পাশাপাশি চলতে পারে, যাতে ব্যবহারকারীরা একাধিক কাজ করতে পারেন। যেকোনো মোবাইল বা বড় স্ক্রিনের অ্যান্ড্রয়েড অ্যাপ হোম স্পেসে কাজ করতে পারে, পাশাপাশি জেটপ্যাক এক্সআর এসডিকে ব্যবহার করে তৈরি এক্সআর অ্যাপও।
<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>
PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED প্রপার্টি
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>
XR অ্যাপের জন্য প্যাকেজম্যানেজার বৈশিষ্ট্য
যখন আপনি Google Play Store এর মাধ্যমে অ্যাপ বিতরণ করেন , তখন আপনি অ্যাপ ম্যানিফেস্টে প্রয়োজনীয় হার্ডওয়্যার বা সফ্টওয়্যার বৈশিষ্ট্যগুলি নির্দিষ্ট করতে পারেন। uses-feature উপাদানটি Play Store কে ব্যবহারকারীদের দেখানো অ্যাপগুলিকে যথাযথভাবে ফিল্টার করার অনুমতি দেয়।
নিম্নলিখিত বৈশিষ্ট্যগুলি 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" />
যদি আপনার অ্যাপটি বিশেষভাবে XR-সক্ষম ডিভাইসগুলির জন্য তৈরি করা হয় এবং 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" />
মোবাইল এবং বড় স্ক্রিনের অ্যাপের জন্য অ্যাপ ম্যানিফেস্ট সামঞ্জস্যের বিবেচ্য বিষয়গুলি
XR অ্যাপসের জন্য প্যাকেজম্যানেজার বৈশিষ্ট্য বিভাগে বর্ণিত হিসাবে, অ্যাপগুলি অ্যাপ ম্যানিফেস্টে <uses-feature> উপাদানে ঘোষণা করে যে তারা একটি বৈশিষ্ট্য ব্যবহার করে তা ঘোষণা করে। টেলিফোনি বা GPS এর মতো কিছু বৈশিষ্ট্য সমস্ত ডিভাইসের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে।
একটি ডিভাইসের জন্য সক্রিয় বৈশিষ্ট্যগুলির একটি তালিকা পেতে, adb shell pm list features চালান।
অসমর্থিত বৈশিষ্ট্যগুলি
ক্যামেরা হার্ডওয়্যার
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.level.full
সংযোগ
android.hardware.ipsec_tunnel_migration
ডিভাইস কনফিগারেশন
ফর্ম ফ্যাক্টর কনফিগারেশন
android.hardware.type.automotive
android.hardware.type.embedded
android.hardware.type.television
android.software.leanback_only
ইনপুট
android.software.input_methods
স্থান
নিয়ার ফিল্ড কমিউনিকেশন
নিরাপত্তা কনফিগারেশন এবং হার্ডওয়্যার
android.hardware.se.omapi.uicc
android.hardware.biometrics.face
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.relative_humidity
android.hardware.sensor.stepcounter
android.hardware.sensor.stepdetector
সফ্টওয়্যার কনফিগারেশন
android.software.connectionservice
android.software.expanded_picture_in_picture
android.software.live_wallpaper
android.software.picture_in_picture
android.software.wallet_location_based_suggestions
টেলিফোনি
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.hardware.vr.headtracking
android.hardware.vr.high_performance
উইজেট
পরবর্তী পদক্ষেপ
এখন আপনি আপনার অ্যাপের ম্যানিফেস্ট কনফিগার করা এবং গুরুত্বপূর্ণ তথ্য পর্যালোচনা করা শেষ করেছেন, তাহলে নিমজ্জিত অভিজ্ঞতা তৈরি করার উপায়গুলি অন্বেষণ করুন:
- XR এর সাহায্যে আপনার অ্যান্ড্রয়েড অ্যাপটিকে 3D তে আনুন
- XR-এর জন্য Jetpack Compose ব্যবহার করে স্থানিক UI তৈরি করুন
- আপনার স্থানিক UI এর জন্য মেটেরিয়াল ডিজাইন বাস্তবায়ন করুন
- আপনার অ্যাপে স্থানিক পরিবেশ যোগ করুন
- সত্তা তৈরি, নিয়ন্ত্রণ এবং পরিচালনা করুন