এই পৃষ্ঠায় বর্ণনা করা হয়েছে, কীভাবে কুইকস্টার্ট- এ বিস্তারিতভাবে বর্ণিত গুগল ম্যাপস টেমপ্লেট ব্যবহার না করে অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে (Maps SDK for Android) ব্যবহার করার জন্য একটি অ্যান্ড্রয়েড স্টুডিও প্রজেক্ট কনফিগার করতে হয়।
গুগল ম্যাপস টেমপ্লেট একটি নতুন অ্যান্ড্রয়েড স্টুডিও প্রজেক্টে স্বয়ংক্রিয়ভাবে একটি বেসিক ম্যাপ কনফিগার করে এবং যোগ করে দেয়। তবে, আপনি ভিন্ন অ্যান্ড্রয়েড স্টুডিও টেমপ্লেট ব্যবহার করে এমন একটি অ্যান্ড্রয়েড প্রজেক্টেও ম্যাপ যোগ করতে পারেন। এর জন্য, আপনাকে প্রথমে আপনার প্রজেক্টটি ম্যানুয়ালি কনফিগার করতে হবে এবং তারপর ম্যাপটি যোগ করতে হবে ।
ধাপ ১: অ্যান্ড্রয়েড স্টুডিও সেট আপ করুন।
এই ডকুমেন্টে অ্যান্ড্রয়েড স্টুডিও হেজহগ এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ ৮.২ ব্যবহার করে একটি ডেভেলপমেন্ট এনভায়রনমেন্টের বর্ণনা দেওয়া হয়েছে।
ধাপ ২. এসডিকে সেট আপ করুন।
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে লাইব্রেরিটি গুগলের ম্যাভেন রিপোজিটরিতে পাওয়া যায়। আপনার অ্যাপে এসডিকে-টি যোগ করতে, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:
- আপনার শীর্ষ-স্তরের
settings.gradle.ktsফাইলে,pluginManagementব্লকের অধীনে Gradle প্লাগইন পোর্টাল , Google Maven রিপোজিটরি এবং Maven সেন্ট্রাল রিপোজিটরি অন্তর্ভুক্ত করুন। স্ক্রিপ্টেpluginManagementব্লকটি অবশ্যই অন্য যেকোনো স্টেটমেন্টের আগে থাকতে হবে।pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } }
- আপনার শীর্ষ-স্তরের
settings.gradle.ktsফাইলে,dependencyResolutionManagementব্লকের অধীনে Google-এর Maven রিপোজিটরি এবং Maven সেন্ট্রাল রিপোজিটরি অন্তর্ভুক্ত করুন:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() } }
- আপনার মডিউল-স্তরের
build.gradle.ktsঅথবাbuild.gradleফাইলে, Android-এর জন্য Maps SDK-এর Google Play services ডিপেন্ডেন্সিটি যোগ করুন।কোটলিন
dependencies { // Maps SDK for Android implementation(libs.play.services.maps) }
গ্রুভি
dependencies { // Maps SDK for Android implementation "com.google.android.gms:play-services-maps:20.0.0" }
- আপনার মডিউল-স্তরের
build.gradle.ktsঅথবাbuild.gradleফাইলে,compileSdkএবংminSdkনিম্নলিখিত মানগুলিতে সেট করুন:কোটলিন
android { compileSdk = 34 defaultConfig { minSdk = 21 // ... } }
গ্রুভি
android { compileSdk 34 defaultConfig { minSdk 21 // ... } }
- আপনার মডিউল-স্তরের
build.gradle.ktsবাbuild.gradleফাইলেরbuildFeaturesবিভাগেBuildConfigক্লাসটি যোগ করুন, যা আপনি এই কার্যপ্রণালীতে পরে সংজ্ঞায়িত মেটাডেটা মানগুলি অ্যাক্সেস করতে ব্যবহার করতে পারবেন:কোটলিন
android { // ... buildFeatures { buildConfig = true // ... } }
গ্রুভি
android { // ... buildFeatures { buildConfig true // ... } }
- আপনার
libs.versions.tomlফাইলে নিম্নলিখিতটি যোগ করুন:[versions] play-services-maps = "20.0.0" [libraries] play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" }
ধাপ ৩: প্রজেক্টে আপনার API কী যোগ করুন।
এই বিভাগে বর্ণনা করা হয়েছে কীভাবে আপনার API কী সংরক্ষণ করবেন, যাতে আপনার অ্যাপ এটিকে নিরাপদে ব্যবহার করতে পারে। আপনার ভার্সন কন্ট্রোল সিস্টেমে API কী চেক ইন করা উচিত নয়, তাই আমরা এটিকে secrets.properties ফাইলে সংরক্ষণ করার পরামর্শ দিই, যা আপনার প্রোজেক্টের রুট ডিরেক্টরিতে অবস্থিত। secrets.properties ফাইল সম্পর্কে আরও তথ্যের জন্য, Gradle properties files দেখুন।
এই কাজটি সহজ করার জন্য, আমরা আপনাকে অ্যান্ড্রয়েডের জন্য সিক্রেটস গ্রেডল প্লাগইন ব্যবহার করার পরামর্শ দিই।
অ্যান্ড্রয়েডের জন্য সিক্রেটস গ্রেডল প্লাগইন ইনস্টল করতে এবং আপনার এপিআই কী সংরক্ষণ করতে:
- অ্যান্ড্রয়েড স্টুডিওতে, আপনার রুট-লেভেলের
build.gradleফাইলটি খুলুন এবংbuildscriptঅধীনেdependenciesএলিমেন্টে নিম্নলিখিত কোডটি যোগ করুন।গ্রুভি
buildscript { dependencies { // ... classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
কোটলিন
buildscript { dependencies { // ... classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
- আপনার অ্যাপ-লেভেলের
build.gradleফাইলটি খুলুন এবংpluginsএলিমেন্টে নিম্নলিখিত কোডটি যোগ করুন।গ্রুভি
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
কোটলিন
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- আপনি যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন, তাহলে আপনার প্রজেক্টটি গ্রেডলের সাথে সিঙ্ক করুন ।
- আপনার প্রজেক্ট লেভেল ডিরেক্টরিতে থাকা
local.propertiesফাইলটি খুলুন এবং নিচের কোডটি যোগ করুন।YOUR_API_KEYএর জায়গায় আপনার API কী বসান।MAPS_API_KEY=YOUR_API_KEY
- আপনার
AndroidManifest.xmlফাইলে,com.google.android.geo.API_KEYতে যান এবংandroid:valueঅ্যাট্রিবিউটটি নিম্নরূপভাবে আপডেট করুন:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />দ্রষ্টব্য: এপিআই কী-এর জন্য
com.google.android.geo.API_KEYহলো প্রস্তাবিত মেটাডেটা নাম। এই নামের একটি কী অ্যান্ড্রয়েড প্ল্যাটফর্মে একাধিক গুগল ম্যাপস-ভিত্তিক এপিআই-তে প্রমাণীকরণের জন্য ব্যবহার করা যেতে পারে, যার মধ্যে অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে-ও অন্তর্ভুক্ত। পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যের জন্য, এপিআইটিcom.google.android.maps.v2.API_KEYনামটি সমর্থন করে। এই পুরোনো নামটি শুধুমাত্র অ্যান্ড্রয়েড ম্যাপস এপিআই v2-তে প্রমাণীকরণের অনুমতি দেয়। একটি অ্যাপ্লিকেশন এপিআই কী মেটাডেটা নামগুলোর মধ্যে শুধুমাত্র একটি নির্দিষ্ট করতে পারে। যদি উভয়ই নির্দিষ্ট করা হয়, তাহলে এপিআই একটি ব্যতিক্রমী ত্রুটি (exception) দেখায়।
ধাপ ৪: অ্যাপ ম্যানিফেস্ট আপডেট করুন।
এই অংশে আপনার AndroidManifest.xml ফাইলে যোগ করার জন্য প্রয়োজনীয় সেটিংসগুলো বর্ণনা করা হয়েছে।
গুগল প্লে পরিষেবা সংস্করণ নম্বর
application এলিমেন্টের মধ্যে নিম্নলিখিত ডিক্লারেশনটি যোগ করুন। এটি গুগল প্লে সার্ভিসের সেই সংস্করণটিকে এমবেড করে, যা দিয়ে অ্যাপটি কম্পাইল করা হয়েছিল।
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
অবস্থানের অনুমতি
আপনার অ্যাপের যদি ব্যবহারকারীর অবস্থান অ্যাক্সেস করার প্রয়োজন হয়, তাহলে আপনাকে আপনার AndroidManifest.xml ফাইলে অবস্থানের অনুমতির জন্য অনুরোধ করতে হবে। এর বিকল্পগুলো হলো ACCESS_FINE_LOCATION , যা ডিভাইসের সুনির্দিষ্ট অবস্থান প্রদান করে, এবং ACCESS_COARSE_LOCATION , যা তুলনামূলকভাবে কম সুনির্দিষ্ট। বিস্তারিত জানতে, অবস্থান ডেটা নির্দেশিকা দেখুন।
ACCESS_FINE_LOCATION পারমিশনের জন্য অনুরোধ করতে, manifest এলিমেন্টে এই কোডটি যোগ করুন:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
বাহ্যিক স্টোরেজের অনুমতি
আপনি যদি গুগল প্লে সার্ভিসেস এসডিকে-এর ৮.৩ বা তার পরবর্তী সংস্করণ টার্গেট করেন, তাহলে আপনার WRITE_EXTERNAL_STORAGE পারমিশনের প্রয়োজন নেই। আপনি যদি গুগল প্লে সার্ভিসেস এসডিকে-এর পূর্ববর্তী সংস্করণগুলো টার্গেট করেন, তাহলে আপনাকে অবশ্যই manifest এলিমেন্টে WRITE_EXTERNAL_STORAGE পারমিশনের জন্য অনুরোধ করতে হবে।
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
অ্যাপাচি এইচটিটিপি লিগ্যাসি লাইব্রেরি
আপনি যদি com.google.android.gms:play-services-maps:16.0.0 বা তার নিচের সংস্করণ ব্যবহার করেন এবং আপনার অ্যাপটি এপিআই লেভেল ২৮ (অ্যান্ড্রয়েড ৯.০) বা তার উপরের সংস্করণকে টার্গেট করে, তাহলে আপনাকে অবশ্যই AndroidManifest.xml ফাইলের <application> এলিমেন্টের মধ্যে নিম্নলিখিত ডিক্লারেশনটি অন্তর্ভুক্ত করতে হবে। অন্যথায়, এই ডিক্লারেশনটি যোগ করার প্রয়োজন নেই।
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
ধাপ ৫: একটি অ্যান্ড্রয়েড ডিভাইস সেট আপ করুন
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে (Maps SDK for Android) ব্যবহার করে এমন কোনো অ্যাপ চালানোর জন্য, আপনাকে অবশ্যই এটিকে অ্যান্ড্রয়েড ৫.০ বা তার উচ্চতর সংস্করণের উপর ভিত্তি করে তৈরি এবং গুগল এপিআই (Google APIs) অন্তর্ভুক্ত কোনো অ্যান্ড্রয়েড ডিভাইস বা অ্যান্ড্রয়েড এমুলেটরে স্থাপন করতে হবে।
- অ্যান্ড্রয়েড ডিভাইস ব্যবহার করতে, ‘Run apps on a hardware device’- এর নির্দেশাবলী অনুসরণ করুন।
- অ্যান্ড্রয়েড এমুলেটর ব্যবহার করার জন্য, আপনি অ্যান্ড্রয়েড স্টুডিওর সাথে আসা অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস (AVD) ম্যানেজার ব্যবহার করে একটি ভার্চুয়াল ডিভাইস তৈরি ও এমুলেটরটি ইনস্টল করতে পারেন।
ধাপ ৬: ঐচ্ছিকভাবে প্লে সার্ভিস সমর্থনের জন্য যাচাই করুন।
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে (Maps SDK for Android) ব্যবহার করতে হলে, যে ডিভাইসে আপনি আপনার অ্যাপটি স্থাপন করছেন, সেটিতে গুগল প্লে সার্ভিসেস (Google Play services) ইনস্টল করা থাকতে হবে। এটি পরীক্ষা করার জন্য গুগল একটি পদ্ধতি প্রদান করে, যা আপনি আপনার অ্যাপ থেকে কল করতে পারেন। আরও তথ্যের জন্য, "গুগল প্লে সার্ভিসেস ইনস্টল করা আছে কিনা তা পরীক্ষা করুন" দেখুন।
পরবর্তী পদক্ষেপ
আপনার প্রজেক্টটি কনফিগার করা হয়ে গেলে, আপনি একটি ম্যাপ যোগ করতে পারবেন।