অ্যান্ড্রয়েড এক্সআরের জন্য ওপেনএক্সআর দিয়ে শুরু করুন

প্রযোজ্য XR ডিভাইস
এই নির্দেশিকা আপনাকে এই ধরণের XR ডিভাইসের অভিজ্ঞতা তৈরি করতে সাহায্য করবে।
XR হেডসেট
তারযুক্ত XR চশমা

সমর্থিত OpenXR এক্সটেনশন বা সমর্থিত ইঞ্জিন দিয়ে তৈরি শুরু করার আগে, তথ্য পর্যালোচনা করুন এবং নিম্নলিখিত বিভাগগুলিতে যেকোনো কাজ সম্পন্ন করুন যাতে নিশ্চিত হন যে আপনার অ্যাপটি নিমজ্জিত XR ডেভেলপমেন্টের জন্য কনফিগার করা আছে।

আপনার অ্যাপের ম্যানিফেস্ট ফাইল কনফিগার করুন

অন্যান্য অ্যান্ড্রয়েড অ্যাপ প্রোজেক্টের মতো, আপনার অ্যান্ড্রয়েড এক্সআর অ্যাপেও নির্দিষ্ট ম্যানিফেস্ট সেটিংস সহ একটি AndroidManifest.xml ফাইল থাকতে হবে। ম্যানিফেস্ট ফাইলটি অ্যান্ড্রয়েড বিল্ড টুল, অ্যান্ড্রয়েড অপারেটিং সিস্টেম এবং গুগল প্লেতে আপনার অ্যাপ সম্পর্কে প্রয়োজনীয় তথ্য বর্ণনা করে। আরও তথ্যের জন্য অ্যাপ ম্যানিফেস্ট ওভারভিউ গাইড দেখুন।

XR ডিফারেনশিয়াল অ্যাপের জন্য, আপনার ম্যানিফেস্ট ফাইলে নিম্নলিখিত উপাদান এবং বৈশিষ্ট্য থাকতে হবে:

PROPERTY_XR_ACTIVITY_START_MODE বৈশিষ্ট্য

android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE" প্রপার্টি সিস্টেমকে জানায় যে কোনও অ্যাক্টিভিটি শুরু হওয়ার সময় একটি নির্দিষ্ট মোডে চালু করা উচিত।

এই সম্পত্তির নিম্নলিখিত মান রয়েছে:

  • XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED (শুধুমাত্র OpenXR)

XR_ACTIVITY_START_MODE_FULL_SPACE_অব্যবস্থাপিত

OpenXR দিয়ে তৈরি অ্যাপগুলি সম্পূর্ণ স্পেসে লঞ্চ হয় এবং XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED স্টার্ট মোড ব্যবহার করতে হবে। অ-ব্যবস্থাপিত পূর্ণ স্পেস অ্যান্ড্রয়েড 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>

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>

<uses-native-library> OpenXR

OpenXR অ্যাপ্লিকেশনগুলিকে অবশ্যই তাদের রানটাইম সফলভাবে লোড করার জন্য নেটিভ OpenXR লাইব্রেরির ব্যবহার ঘোষণা করতে হবে। এই ঘোষণা ছাড়া, রানটাইম লোড হতে ব্যর্থ হয়।

<manifest ... >

    <application ... >

    <uses-native-library android:name="libopenxr.google.so" android:required="false" />

       <activity
           android:name="com.example.myapp.MainActivity" ... >

           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
        </activity>
    </application>
</manifest>

XR অ্যাপের জন্য প্যাকেজম্যানেজার বৈশিষ্ট্য

যখন আপনি Google Play Store এর মাধ্যমে অ্যাপ বিতরণ করেন , তখন আপনি অ্যাপ ম্যানিফেস্টে প্রয়োজনীয় হার্ডওয়্যার বা সফ্টওয়্যার বৈশিষ্ট্যগুলি নির্দিষ্ট করতে পারেন। uses-feature উপাদানটি Play Store কে ব্যবহারকারীদের দেখানো অ্যাপগুলিকে যথাযথভাবে ফিল্টার করার অনুমতি দেয়।

নিম্নলিখিত বৈশিষ্ট্যগুলি XR-বিভাজিত অ্যাপগুলির জন্য নির্দিষ্ট।

অ্যান্ড্রয়েড.সফটওয়্যার.এক্সআর.এপিআই.ওপেনএক্সআর

যেসব অ্যাপ Android XR প্ল্যাটফর্মকে লক্ষ্য করে এবং OpenXR বা Unity দিয়ে তৈরি, তাদের অবশ্যই android:required অ্যাট্রিবিউটকে true তে সেট করে অ্যাপ ম্যানিফেস্টে এই বৈশিষ্ট্যটি অন্তর্ভুক্ত করতে হবে।

যেসব অ্যাপস ইউনিটি ভার্সন ১.০.০ বা তার বেশি সংস্করণের জন্য অ্যান্ড্রয়েড এক্সআর এক্সটেনশন প্যাকেজ অথবা ইউনিটি ওপেনএক্সআর: অ্যান্ড্রয়েড এক্সআর প্যাকেজ ভার্সন ০.৫.০-এক্সপি.১ বা তার বেশি সংস্করণের জন্য ব্যবহার করে, তাদের অ্যাপ ম্যানিফেস্টে এই উপাদানটি ম্যানুয়ালি যোগ করতে হবে না। এই দুটি প্যাকেজ আপনার জন্য অ্যাপ ম্যানিফেস্টে এই উপাদানটি ইনজেক্ট করবে।

ডিভাইসগুলি এই বৈশিষ্ট্যের জন্য একটি সংস্করণ নির্দিষ্ট করতে পারে, যা ডিভাইস দ্বারা সমর্থিত OpenXR এর সর্বোচ্চ সংস্করণ নির্দেশ করে। উচ্চতর 16 বিট প্রধান সংখ্যাকে প্রতিনিধিত্ব করে এবং নিম্ন 16 বিট ক্ষুদ্র সংখ্যাকে প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, OpenXR সংস্করণ 1.1 নির্দিষ্ট করতে, মানটি "0x00010001" এ সেট করা হবে।

অ্যাপগুলি ফিচার সংস্করণ ব্যবহার করে অ্যাপটির জন্য প্রয়োজনীয় ন্যূনতম OpenXR সংস্করণ নির্দেশ করতে পারে। উদাহরণস্বরূপ, যদি আপনার অ্যাপের OpenXR সংস্করণ 1.1 সমর্থন প্রয়োজন হয়, তাহলে নিম্নলিখিত বৈশিষ্ট্যটি ঘোষণা করুন:

<uses-feature android:name="android.software.xr.api.openxr"
    android:version="0x00010001"
    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" />

পরবর্তী পদক্ষেপ

এখন আপনি আপনার অ্যাপের ম্যানিফেস্ট কনফিগার করা এবং গুরুত্বপূর্ণ তথ্য পর্যালোচনা করা শেষ করেছেন, OpenXR দিয়ে কীভাবে তৈরি করতে পারেন তা অন্বেষণ করুন: