আপনার অ্যান্ড্রয়েড এনডিকে অ্যাপ (সি) এর জন্য জিওস্পেশিয়াল এপিআই সক্ষম করুন

আপনার অ্যাপের সেটিংস কনফিগার করুন যাতে এটি Geospatial API ব্যবহার করতে পারে।

পূর্বশর্ত

এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি মৌলিক AR ধারণা এবং কীভাবে একটি ARCore সেশন কনফিগার করবেন তা বুঝতে পেরেছেন।

আপনি যদি এখানে বর্ণিত কার্যকারিতা প্রদর্শন করে এমন একটি নমুনা অ্যাপ চালাতে চান, তাহলে Java এর জন্য Android এর জন্য ARCore জিওস্পেশিয়াল কুইকস্টার্ট দেখুন। কুইকস্টার্টের নমুনা অ্যাপটি জাভাতে লেখা আছে। এই নথিতে কোড নমুনাগুলি সি তে লেখা একই কার্যকারিতার জন্য।

জিওস্পেশিয়াল এপিআই সম্পর্কে আরও তথ্যের জন্য জিওস্পেশিয়াল এপিআই-এর ভূমিকা দেখুন।

আপনি যদি ARCore-এর সাথে বিকাশের জন্য নতুন হয়ে থাকেন, তাহলে সফ্টওয়্যার এবং হার্ডওয়্যার প্রয়োজনীয়তা, পূর্বপ্রস্তুতি এবং আপনি যে প্ল্যাটফর্মগুলি ব্যবহার করছেন তার জন্য নির্দিষ্ট অন্যান্য তথ্য সম্পর্কে তথ্যের জন্য শুরু করা দেখুন।

নিশ্চিত করুন যে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট ARCore SDK প্রয়োজনীয়তা পূরণ করে, যেমন Java এর জন্য Quickstart- এ বর্ণনা করা হয়েছে।

ARCore API সক্ষম করুন

আপনার অ্যাপে ভিজ্যুয়াল পজিশনিং সিস্টেম (VPS) ব্যবহার করার আগে, আপনাকে প্রথমে একটি নতুন বা বিদ্যমান Google ক্লাউড প্রকল্পে ARCore API সক্ষম করতে হবে। এই পরিষেবাটি জিওস্পেশিয়াল অ্যাঙ্কর হোস্টিং, সংরক্ষণ এবং সমাধানের জন্য দায়ী৷

কীবিহীন অনুমোদন পছন্দ করা হয়, তবে API কী অনুমোদনও সমর্থিত।

আপনার অ্যাপে প্রয়োজনীয় লাইব্রেরি যোগ করুন

ARCore API কল করার জন্য আপনার অ্যাপটিকে অনুমোদন করার পরে, আপনার অ্যাপে ভূ-স্থানীয় বৈশিষ্ট্যগুলি সক্ষম করতে আপনাকে অবশ্যই লাইব্রেরি যোগ করতে হবে।

আপনার অ্যাপের build.gradle ফাইলে, প্লে পরিষেবা লোকেশন লাইব্রেরি অন্তর্ভুক্ত করতে Google Play পরিষেবাগুলি সেটআপ করুন

dependencies {
  // Apps must declare play-services-location version >= 16.
  // In the following line, substitute `16 (or later)` with the latest version.
  implementation 'com.google.android.gms:play-services-location:16 (or later)'
}

সেশন কনফিগারেশনে ভূ-স্থানীয় ক্ষমতা সক্ষম করুন

সেশনটি তৈরি করার আগে, আপনার সেশন কনফিগারেশনের GeospatialMode ENABLED এ পরিবর্তন করুন:

// Create a session config.
ArConfig* ar_config = NULL;
ArConfig_create(ar_session, &ar_config);

// Enable the Geospatial API.
ArConfig_setGeospatialMode(ar_session, ar_config, AR_GEOSPATIAL_MODE_ENABLED);
CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS);

// Release config resources.
ArConfig_destroy(ar_config);

যখন জিওস্পেশিয়াল মোডটি ENABLED এ সেট করা থাকে, অ্যাপ্লিকেশনটিকে ভিজ্যুয়াল পজিশনিং সিস্টেম (VPS) থেকে ভৌগলিক তথ্য পাওয়ার অনুমতি দেওয়া হয়।

ব্যবহারকারীকে ডিভাইস ডেটা ব্যবহারের অনুমতি দিতে অনুরোধ করুন

যে অ্যাপগুলি ARCore জিওস্পেশিয়াল এপিআই ব্যবহার করে তাদের অবশ্যই ব্যবহারকারীকে তাদের ডিভাইস থেকে ডেটা ব্যবহারের অনুমতি দেওয়ার জন্য একটি প্রম্পট উপস্থাপন করতে হবে। আরও তথ্যের জন্য ব্যবহারকারীর গোপনীয়তার প্রয়োজনীয়তা দেখুন।

ডিভাইসের সামঞ্জস্যতা পরীক্ষা করুন

ARCore সমর্থন করে এমন সমস্ত ডিভাইসও জিওস্পেশিয়াল API সমর্থন করে না, যেমন Java-এর জন্য Quickstart- এ বর্ণনা করা হয়েছে।

সামঞ্জস্যের জন্য ব্যবহারকারীর ডিভাইস পরীক্ষা করতে, ArSession_isGeospatialModeSupported() কল করুন। যদি এটি মিথ্যা হয় তাহলে সেশনটি কনফিগার করার চেষ্টা করবেন না (নীচে), কারণ এটি করার ফলে ArStatus একটি AR_ERROR_UNSUPPORTED_CONFIGURATION রিপোর্ট করবে।

রানটাইমে অবস্থানের অনুমতির জন্য ব্যবহারকারীকে জিজ্ঞাসা করুন

রানটাইমে আপনার অ্যাপকে অবশ্যই অবস্থানের অনুমতির অনুরোধ করতে হবে

ARCore Geospatial API ব্যবহার করতে, আপনার অ্যাপটিকে নিম্নলিখিত অতিরিক্ত অনুমতিগুলি নিবন্ধন করতে হবে:

  • ব্যবহারকারীর অবস্থান নির্ভুলভাবে নির্ধারণ করতে ACCESS_FINE_LOCATION

  • ACCESS_COARSE_LOCATION ব্যবহারকারীর অবস্থানের অ-সঠিক নির্ধারণের জন্য এবং ব্যবহারকারীর গোপনীয়তার প্রয়োজনীয়তা মেনে চলার জন্য। যাইহোক, মোটা অবস্থানের সাথে কাজ করার জন্য Geospatial API কনফিগার করা যাবে না, এবং API অনুরোধগুলি ব্যর্থ হবে যখন ব্যবহারকারী এই অনুমতি সেট করবে। আরও তথ্যের জন্যে নিচে দেখুন।

  • ARCore Geospatial API পরিষেবার সাথে যোগাযোগ করতে ACCESS_INTERNET

<manifest ... >
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.INTERNET" />
</manifest>

যে ডিভাইসগুলিতে Android সংস্করণ 12 বা তার বেশি চলে, ব্যবহারকারীরা অনুরোধ করতে পারেন যে আপনার অ্যাপটি শুধুমাত্র আনুমানিক অবস্থানের তথ্যে অ্যাক্সেস পাবে। এই অনুরোধটি মিটমাট করার জন্য, আপনার অ্যাপে ACCESS_COARSE_LOCATION সহ, উপরে দেখানো হিসাবে ACCESS_FINE_LOCATION অনুমতি কনফিগার করা আবশ্যক৷ আপনাকে অবশ্যই উভয় অবস্থানের অনুমতি কনফিগার করতে হবে

যাইহোক, যখন ব্যবহারকারীরা মোটা অবস্থান নির্দিষ্ট করে, তখন তা করলে জিওস্পেশিয়াল এপিআই এর প্রয়োজনীয় সুনির্দিষ্ট অবস্থান পেতে বাধা দেয়। আপনার অ্যাপটি শুধুমাত্র মোটা অবস্থান দিলে ভূ-স্থানিক পরিষেবাটি নিজেকে কনফিগার করার অনুমতি দেবে না। আপনার অ্যাপটি মোটা অবস্থান সহ ভূ-স্থানীয় API ব্যবহার করতে পারে না।

ডিভাইসের বর্তমান অবস্থানে ভূ-স্থানিক প্রাপ্যতা পরীক্ষা করুন

যেহেতু জিওস্পেশিয়াল এপিআই একটি জিওস্পেশিয়াল পোজ নির্ধারণ করতে ভিপিএস এবং জিপিএসের সংমিশ্রণ ব্যবহার করে, যতক্ষণ পর্যন্ত ডিভাইসটি তার অবস্থান নির্ধারণ করতে সক্ষম হয় ততক্ষণ পর্যন্ত এপিআই ব্যবহার করা যেতে পারে। কম GPS নির্ভুলতা সহ এলাকায়, যেমন ইনডোর স্পেস এবং ঘন শহুরে পরিবেশ, API উচ্চ নির্ভুলতা ভঙ্গি তৈরি করতে VPS কভারেজের উপর নির্ভর করবে। সাধারণ অবস্থার অধীনে, VPS প্রায় 5 মিটার অবস্থানগত নির্ভুলতা এবং 5 ডিগ্রী ঘূর্ণনগত নির্ভুলতা প্রদান করবে বলে আশা করা যেতে পারে। একটি প্রদত্ত অবস্থানে VPS কভারেজ আছে কিনা তা নির্ধারণ করতে ArSession_checkVpsAvailabilityAsync() ব্যবহার করুন।

জিওস্পেশিয়াল এপিআই এমন এলাকায়ও ব্যবহার করা যেতে পারে যেখানে ভিপিএস কভারেজ নেই। অল্প বা কোন ওভারহেড বাধা সহ বহিরঙ্গন পরিবেশে, উচ্চ নির্ভুলতার সাথে একটি ভঙ্গি তৈরি করার জন্য GPS যথেষ্ট হতে পারে।

এরপর কি