หน้านี้อธิบายวิธีกำหนดค่าโปรเจ็กต์ Android Studio ให้ใช้ Maps SDK สำหรับ Android โดยไม่ต้องใช้เทมเพลต Google Maps ที่อธิบายไว้โดยละเอียดใน คู่มือเริ่มใช้งานฉบับย่อ
เทมเพลต Google Maps จะกำหนดค่าและเพิ่มแผนที่พื้นฐานลงในโปรเจ็กต์ Android Studio ใหม่โดยอัตโนมัติ อย่างไรก็ตาม คุณยังเพิ่มแผนที่ลงในโปรเจ็กต์ Android ที่ใช้เทมเพลต Android Studio อื่นได้ด้วย โดยคุณต้องกำหนดค่าโปรเจ็กต์ด้วยตนเอง ก่อน แล้วจึงเพิ่ม แผนที่
ขั้นตอนที่ 1: ตั้งค่า Android Studio
เอกสารนี้อธิบายสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ที่ใช้ Android Studio Hedgehog และ ปลั๊กอิน Android Gradle เวอร์ชัน 8.2
ขั้นตอนที่ 2 ตั้งค่า SDK
ไลบรารี Maps SDK สำหรับ Android พร้อมให้บริการผ่าน ที่เก็บ Maven ของ Google หากต้องการเพิ่ม SDK ลงในแอป ให้ทำดังนี้
- ในไฟล์
settings.gradle.ktsระดับบนสุด ให้ใส่ พอร์ทัลปลั๊กอิน Gradle, ที่เก็บ Maven ของ Google, และ ที่เก็บส่วนกลาง Maven ไว้ในบล็อกpluginManagementบล็อกpluginManagementต้องปรากฏก่อนคำสั่งอื่นๆ ในสคริปต์pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } }
- ในไฟล์
settings.gradle.ktsระดับบนสุด ให้ใส่ ที่เก็บ Maven ของ Google และ ที่เก็บส่วนกลาง Maven ไว้ในบล็อกdependencyResolutionManagementดังนี้dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() } }
- ในไฟล์
build.gradle.ktsหรือbuild.gradleระดับโมดูล ให้เพิ่มทรัพยากร Dependency ของ บริการ Google Play สำหรับ Maps SDK สำหรับ AndroidKotlin
dependencies { // Maps SDK for Android implementation(libs.play.services.maps) }
Groovy
dependencies { // Maps SDK for Android implementation "com.google.android.gms:play-services-maps:20.1.0" }
- ในไฟล์
build.gradle.ktsหรือbuild.gradleระดับโมดูล ให้ตั้งค่าcompileSdkและminSdkเป็นค่าต่อไปนี้:Kotlin
android { compileSdk = 34 defaultConfig { minSdk = 23 // ... } }
Groovy
android { compileSdk 34 defaultConfig { minSdk 23 // ... } }
- ในส่วน
buildFeaturesของไฟล์build.gradle.ktsหรือbuild.gradleระดับโมดูล ให้เพิ่มคลาสBuildConfigซึ่งคุณใช้เพื่อ เข้าถึงค่าข้อมูลเมตาที่กำหนดไว้ในภายหลังในขั้นตอนนี้ได้Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
Groovy
android { // ... buildFeatures { buildConfig true // ... } }
- ในไฟล์
libs.versions.tomlให้เพิ่มข้อมูลต่อไปนี้[versions] play-services-maps = "20.1.0" [libraries] play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" }
ขั้นตอนที่ 3: เพิ่มคีย์ API ลงในโปรเจ็กต์
ส่วนนี้อธิบายวิธีจัดเก็บคีย์ API เพื่อให้แอปอ้างอิงคีย์ได้อย่างปลอดภัย คุณไม่ควรเช็คอินคีย์ API ลงในระบบควบคุมเวอร์ชัน ดังนั้นเราขอแนะนำให้จัดเก็บคีย์ไว้ในไฟล์ secrets.properties ในไดเรกทอรีรากของโปรเจ็กต์ และยกเว้นไฟล์ดังกล่าวจากระบบควบคุมเวอร์ชัน ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์พร็อพเพอร์ตี้ Gradle
ได้ที่
ไฟล์พร็อพเพอร์ตี้ Gradle
เราขอแนะนำให้ใช้ ปลั๊กอินข้อมูลลับ Gradle สำหรับ Android เพื่อลดความซับซ้อนของงานนี้
วิธีติดตั้งปลั๊กอินข้อมูลลับ Gradle สำหรับ Android และจัดเก็บคีย์ API
-
ใน Android Studio ให้เปิดไฟล์
build.gradle.ktsหรือbuild.gradleระดับบนสุด แล้วเพิ่มโค้ดต่อไปนี้ลงในบล็อกpluginsKotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
-
เปิดไฟล์
build.gradle.ktsหรือbuild.gradleระดับโมดูล แล้วเพิ่มโค้ดต่อไปนี้ลงในองค์ประกอบpluginsKotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Groovy
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- หากใช้ Android Studio, ให้ซิงค์โปรเจ็กต์กับ Gradle
-
เปิดไฟล์
secrets.propertiesในไดเรกทอรีระดับบนสุด แล้วเพิ่มโค้ดต่อไปนี้ แทนที่YOUR_API_KEYด้วยคีย์ API อย่าลืมเพิ่มsecrets.propertiesลงในไฟล์.gitignore(หรือยกเว้นไฟล์ดังกล่าวจากระบบควบคุมเวอร์ชัน) เพื่อไม่ให้คุณเช็คอินคีย์ API ลงในระบบควบคุมเวอร์ชันMAPS_API_KEY=YOUR_API_KEY
-
สร้างไฟล์
local.defaults.propertiesในไดเรกทอรีระดับบนสุด ซึ่งเป็นโฟลเดอร์เดียวกับไฟล์secrets.propertiesแล้วเพิ่มโค้ดต่อไปนี้MAPS_API_KEY=DEFAULT_API_KEY
ไฟล์นี้มีไว้เพื่อเป็นตำแหน่งสำรองสำหรับคีย์ API ในกรณีที่ระบบไม่พบไฟล์
secrets.propertiesเพื่อไม่ให้การสร้าง ล้มเหลว ซึ่งอาจเกิดขึ้นได้หากคุณโคลนแอปจากระบบควบคุมเวอร์ชันที่ละเว้นsecrets.propertiesและคุณยังไม่ได้สร้างไฟล์secrets.propertiesในเครื่องเพื่อระบุคีย์ API -
ในไฟล์
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เป็นชื่อข้อมูลเมตาที่แนะนำ สำหรับคีย์ API คีย์ที่มีชื่อนี้สามารถใช้เพื่อตรวจสอบสิทธิ์กับ API หลายรายการที่อิงตาม Google Maps ในแพลตฟอร์ม Android รวมถึง Maps SDK สำหรับ Android API ยังรองรับชื่อcom.google.android.maps.v2.API_KEYเพื่อความเข้ากันได้แบบย้อนหลัง ชื่อเดิมนี้ อนุญาตให้ตรวจสอบสิทธิ์กับ Android Maps API v2 เท่านั้น แอปพลิเคชันระบุชื่อข้อมูลเมตาของคีย์ API ได้เพียงชื่อเดียวเท่านั้น หากระบุทั้ง 2 ชื่อ API จะแสดงข้อยกเว้น -
ใน Android Studio ให้เปิดไฟล์ระดับโมดูล
build.gradle.ktsหรือbuild.gradleแล้วแก้ไขพร็อพเพอร์ตี้secretsหากพร็อพเพอร์ตี้secretsไม่มีอยู่ ให้เพิ่มพร็อพเพอร์ตี้ดังกล่าวแก้ไขพร็อพเพอร์ตี้ของปลั๊กอินเพื่อตั้งค่า
propertiesFileNameเป็น"secrets.properties", ตั้งค่าdefaultPropertiesFileNameเป็น"local.defaults.properties"และตั้งค่าพร็อพเพอร์ตี้อื่นๆKotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file). // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
Groovy
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file). // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
ขั้นตอนที่ 4: อัปเดตไฟล์ Manifest ของแอป
ส่วนนี้อธิบายการตั้งค่าที่จะเพิ่มลงในไฟล์
AndroidManifest.xml
หมายเลขเวอร์ชันของบริการ Google Play
เพิ่มการประกาศต่อไปนี้ภายในองค์ประกอบ application ซึ่งจะฝังเวอร์ชันของบริการ Google Play ที่ใช้คอมไพล์แอป
<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"/>
สิทธิ์พื้นที่จัดเก็บข้อมูลภายนอก
หากคุณกำหนดเป้าหมายเป็น เวอร์ชัน 8.3 ขึ้นไป ของ Google Play services SDK คุณไม่จำเป็นต้องมีสิทธิ์ WRITE_EXTERNAL_STORAGE หากคุณกำหนดเป้าหมายเป็น
Google Play services SDK เวอร์ชันก่อนหน้า คุณต้องขอสิทธิ์
WRITE_EXTERNAL_STORAGE
ในองค์ประกอบ manifest
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
ไลบรารี Apache HTTP เดิม
หากคุณใช้ com.google.android.gms:play-services-maps:16.0.0 หรือต่ำกว่า และ
แอปกำหนดเป้าหมายเป็น API ระดับ 28 (Android 9.0) ขึ้นไป คุณต้องใส่
การประกาศต่อไปนี้ภายในองค์ประกอบ <application> ของ
AndroidManifest.xml หากไม่เป็นเช่นนั้น ให้ข้ามการประกาศนี้
<uses-library
android:name="org.apache.http.legacy"
android:required="false"/>
ขั้นตอนที่ 5: ตั้งค่าอุปกรณ์ Android
หากต้องการเรียกใช้แอปที่ใช้ Maps SDK สำหรับ Android คุณต้องติดตั้งใช้งานแอปในอุปกรณ์ Android หรือโปรแกรมจำลองของ Android ที่อิงตาม Android 6.0 ขึ้นไปและมี Google APIs
- หากต้องการใช้อุปกรณ์ Android ให้ทำตามวิธีการที่ เรียกใช้แอปในอุปกรณ์ฮาร์ดแวร์
- หากต้องการใช้โปรแกรมจำลองของ Android คุณสามารถสร้างอุปกรณ์เสมือนจริงและติดตั้งโปรแกรมจำลองได้โดยใช้โปรแกรมจัดการอุปกรณ์ที่มาพร้อมกับ Android Studio
ขั้นตอนที่ 6: ตรวจสอบการรองรับบริการ Google Play (ไม่บังคับ)
Maps SDK สำหรับ Android กำหนดให้อุปกรณ์ที่คุณติดตั้งใช้งานแอปต้องติดตั้งบริการ Google Play Google มีเมธอดที่คุณเรียกใช้จากแอปเพื่อตรวจสอบได้ ดูข้อมูลเพิ่มเติมได้ที่ ตรวจสอบว่ามีการติดตั้งบริการ Google Play หรือไม่
ขั้นตอนถัดไป
เมื่อกำหนดค่าโปรเจ็กต์แล้ว คุณจะเพิ่มแผนที่ได้