স্থানিক ক্ষমতা পরীক্ষা করুন, স্থানিক ক্ষমতা পরীক্ষা করুন

ব্যবহারকারীরা আপনার অ্যাপ বা সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার সাথে সাথে স্থানিক ক্ষমতাগুলি পরিবর্তিত হতে পারে, অথবা এমনকি আপনার অ্যাপ দ্বারাও পরিবর্তন করা যেতে পারে—উদাহরণস্বরূপ, হোম স্পেস বা পূর্ণ স্থানে চলে যাওয়া। সমস্যাগুলি এড়াতে, বর্তমান পরিবেশে কোন APIগুলি সমর্থিত তা নির্ধারণ করতে আপনার অ্যাপটিকে স্থানিক ক্ষমতা পরীক্ষা করতে হবে৷

XR-এর জন্য Jetpack Compose ব্যবহার করে স্থানিক ক্ষমতা পরীক্ষা করুন

XR-এর জন্য Jetpack Compose স্থানিক ক্ষমতা পরীক্ষা করার জন্য একটি কম্পোজিশন লোকাল তৈরি করে। স্থানিক UI, স্থানিক অডিও, পরিবেশ, পাসথ্রু, বা 3D সামগ্রী সক্ষম করা আছে কিনা তা পরীক্ষা করতে এটি ব্যবহার করুন৷

নিম্নলিখিত স্থানিক ক্ষমতা বর্তমানে উপলব্ধ কিনা তা পরীক্ষা করতে আপনি LocalSpatialCapabilities.current ব্যবহার করতে পারেন:

  • isSpatialUiEnabled : অ্যাপ্লিকেশনটি স্থানিক UI উপাদান তৈরি করতে পারে কিনা তা নির্দেশ করে (উদাহরণস্বরূপ, SpatialPanel )।
  • isContent3dEnabled : অ্যাপ্লিকেশনটি 3D অবজেক্ট তৈরি করতে পারে কিনা তা নির্দেশ করে।
  • isAppEnvironmentEnabled : অ্যাপ্লিকেশন পরিবেশ সেট করতে পারে কিনা তা নির্দেশ করে।
  • isPassthroughControlEnabled : অ্যাপ্লিকেশনটি পাসথ্রু অবস্থা নিয়ন্ত্রণ করতে পারে কিনা তা নির্দেশ করে।
  • isSpatialAudioEnabled : অ্যাপ্লিকেশনটি স্থানিক অডিও ব্যবহার করতে পারে কিনা তা নির্দেশ করে।

নিম্নলিখিত উদাহরণ দেখায় কিভাবে স্থানিক UI সক্ষম করা আছে কিনা তা পরীক্ষা করতে হয়।

if (LocalSpatialCapabilities.current.isSpatialUiEnabled) {
    Subspace {
        SpatialPanel(
            modifier = SubspaceModifier
                .width(1488.dp)
                .fillMaxHeight()
        ) {
            AppContent()
        }
    }
} else {
    AppContent()
}

SceneCore ব্যবহার করে স্থানিক ক্ষমতা পরীক্ষা করুন

SceneCore লাইব্রেরি ব্যবহার করার সময়, আপনাকে একটি সেশন তৈরি করতে হবে। একবার সেশন তৈরি হয়ে গেলে, বর্তমানে কোন স্থানিক ক্ষমতাগুলি উপলব্ধ তা জিজ্ঞাসা করতে সেশনে getSpatialCapabilities কল করুন।

  • SPATIAL_CAPABILITY_3D_CONTENT : কার্যকলাপ 3D সামগ্রী তৈরি করতে পারে৷
  • SPATIAL_CAPABILITY_APP_ENVIRONMENT : কার্যকলাপ তার নিজস্ব পরিবেশ সেট করতে পারে।
  • SPATIAL_CAPABILITY_EMBED_ACTIVITY : কার্যকলাপ স্থানিকভাবে অন্য একটি কার্যকলাপ এম্বেড করতে পারে৷
  • SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL : কার্যকলাপটি পাসথ্রু সক্ষম বা অক্ষম করতে পারে৷
  • SPATIAL_CAPABILITY_SPATIAL_AUDIO : কার্যকলাপ স্থানিক অডিও ব্যবহার করতে পারে।
  • SPATIAL_CAPABILITY_UI : ক্রিয়াকলাপটি নিজেকে স্থানিক করতে পারে যেমন একটি স্থানিক প্যানেল যোগ করা।

আপনি একটি কলব্যাকে সদস্যতা নিতেও বেছে নিতে পারেন, স্থানিক সক্ষমতা addSpatialCapabilitiesChangedListener হলে আপনাকে অবহিত করে।

val xrSession = Session.create(this)

// Example 1: check if enabling passthrough mode is allowed
if (xrSession.getSpatialCapabilities().hasCapability(
       SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL)) {
   xrSession.spatialEnvironment.setPassthroughOpacityPreference(0f)
}
// Example 2: Multiple capability flags can be checked simultaneously:
if (xrSession.getSpatialCapabilities().hasCapability(
       SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL and
               SpatialCapabilities.SPATIAL_CAPABILITY_3D_CONTENT)) {
   // ...
}

// Example 3: Create a spatialized panel if/when spatialization UI becomes available
xrSession.addSpatialCapabilitiesChangedListener((capabilities) -> {
  if (capabilities.hasCapability(SpatialCapabilities.SPATIAL_CAPABILITY_UI)){
Subspace{
   SpatialPanel(...)
      }
   }
});

এছাড়াও দেখুন