หน้านี้จะอธิบายวิธีกำหนดค่าโปรเจ็กต์ 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
ระดับบนสุด ให้รวมพอร์ทัลปลั๊กอิน Gradle, ที่เก็บ Google Maven และที่เก็บส่วนกลางของ Maven ภายใต้การบล็อกpluginManagement
บล็อกpluginManagement
ต้องปรากฏก่อนคำสั่งอื่นๆ ในสคริปต์pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- ในไฟล์
settings.gradle
ระดับบนสุด ให้รวมที่เก็บ Maven ของ Google และที่เก็บส่วนกลางของ Maven ใต้บล็อกdependencyResolutionManagement
ดังนี้dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
- ในไฟล์
build.gradle
ระดับโมดูล ให้เพิ่มทรัพยากร Dependency ของบริการ Google Play ของ Maps SDK สำหรับ Androidดึงดูด
dependencies { // Maps SDK for Android implementation 'com.google.android.gms:play-services-maps:19.0.0' }
Kotlin
dependencies { // Maps SDK for Android implementation("com.google.android.gms:play-services-maps:18.2.0") }
- ในไฟล์
build.gradle
ระดับโมดูล ให้ตั้งค่าcompileSdk
และminSdk
เป็นค่าต่อไปนี้ดึงดูด
android { compileSdk 34 defaultConfig { minSdk 21 // ... } }
Kotlin
android { compileSdk = 34 defaultConfig { minSdk = 21 // ... } }
- ในส่วน
buildFeatures
ของไฟล์build.gradle
ระดับโมดูล ให้เพิ่มคลาสBuildConfig
ที่คุณสามารถใช้เพื่อเข้าถึงค่าข้อมูลเมตาที่ระบุภายหลังในกระบวนการนี้ดึงดูด
android { // ... buildFeatures { buildConfig true // ... } }
Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
ขั้นตอนที่ 3: เพิ่มคีย์ API ลงในโปรเจ็กต์
ส่วนนี้จะอธิบายวิธีจัดเก็บคีย์ API เพื่อให้แอปใช้อ้างอิงได้อย่างปลอดภัย คุณไม่ควรตรวจสอบคีย์ API ในระบบควบคุมเวอร์ชัน เราจึงขอแนะนำให้เก็บคีย์ดังกล่าวไว้ในไฟล์ secrets.properties
ซึ่งอยู่ในไดเรกทอรีรากของโปรเจ็กต์ ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ secrets.properties
ได้ที่ไฟล์พร็อพเพอร์ตี้ Gradle
เราขอแนะนำให้ใช้ปลั๊กอิน Secrets Gradle สำหรับ Android เพื่อปรับปรุงการทำงานนี้ให้มีประสิทธิภาพยิ่งขึ้น
วิธีติดตั้งปลั๊กอิน Secrets Gradle สำหรับ Android ในโปรเจ็กต์ Google Maps
-
ใน Android Studio ให้เปิดไฟล์
build.gradle
หรือbuild.gradle.kts
ระดับบนสุด แล้วเพิ่มโค้ดต่อไปนี้ลงในองค์ประกอบdependencies
ในส่วนbuildscript
ดึงดูด
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
เปิดไฟล์
build.gradle
ระดับโมดูลและเพิ่มโค้ดต่อไปนี้ลงในองค์ประกอบplugins
ดึงดูด
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- ในไฟล์
build.gradle
ระดับโมดูล โปรดตรวจสอบว่าได้ตั้งค่าtargetSdk
และcompileSdk
เป็น 34 - บันทึกไฟล์และซิงค์โปรเจ็กต์กับ Gradle
-
เปิดไฟล์
secrets.properties
ในไดเรกทอรีระดับบนสุด แล้วเพิ่มโค้ดต่อไปนี้ แทนที่YOUR_API_KEY
ด้วยคีย์ API จัดเก็บคีย์ของคุณในไฟล์นี้เนื่องจากระบบยกเว้นsecrets.properties
ไม่ให้ตรวจสอบในระบบควบคุมเวอร์ชัน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 attribute
หากไม่มีแท็ก<meta-data>
ให้สร้างเป็นแท็กย่อยของแท็ก<application>
<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Note:
com.google.android.geo.API_KEY
is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Maps SDK for Android. For backwards compatibility, the API also supports the namecom.google.android.maps.v2.API_KEY
. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception. -
In Android Studio, open your module-level
build.gradle
orbuild.gradle.kts
file and edit thesecrets
property. If thesecrets
property does not exist, add it.Edit the properties of the plugin to set
propertiesFileName
tosecrets.properties
, setdefaultPropertiesFileName
tolocal.defaults.properties
, and set any other properties.Groovy
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Kotlin
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
ขั้นตอนที่ 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"/>
สิทธิ์พื้นที่จัดเก็บข้อมูลภายนอก
หากคุณกำหนดเป้าหมาย SDK บริการ Google Play เวอร์ชัน 8.3 ขึ้นไป ก็ไม่จำเป็นต้องมีสิทธิ์
WRITE_EXTERNAL_STORAGE
หากคุณกำหนดเป้าหมาย SDK บริการ Google Play เวอร์ชันก่อนหน้านี้ คุณต้องขอสิทธิ์ 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 5.0 ขึ้นไปและมี Google APIs รวมอยู่ด้วย
- หากต้องการใช้อุปกรณ์ Android ให้ทำตามวิธีการเรียกใช้แอปในอุปกรณ์ฮาร์ดแวร์
- หากต้องการใช้โปรแกรมจำลองของ Android คุณสร้างอุปกรณ์เสมือนและติดตั้งโปรแกรมจำลองได้โดยใช้โปรแกรมจัดการอุปกรณ์เสมือน (AVD) ของ Android ที่มาพร้อมกับ Android Studio
ขั้นตอนที่ 6: ตรวจสอบการรองรับบริการ Google Play (ไม่บังคับ)
Maps SDK สำหรับ Android กำหนดว่าอุปกรณ์ที่คุณทำให้แอปใช้งานได้ต้องมีบริการ Google Play ติดตั้งอยู่ Google มีวิธีการที่คุณสามารถ เรียกใช้จากแอปเพื่อตรวจสอบ ดูข้อมูลเพิ่มเติมได้ที่ตรวจสอบว่ามีการติดตั้งบริการ Google Play แล้วหรือไม่
ขั้นตอนถัดไป
เมื่อโปรเจ็กต์ได้รับการกำหนดค่าแล้ว คุณจะเพิ่มแผนที่ได้
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2024-07-13 UTC
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"ไม่มีข้อมูลที่ฉันต้องการ" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป" },{ "type": "thumb-down", "id": "outOfDate", "label":"ล้าสมัย" },{ "type": "thumb-down", "id": "translationIssue", "label":"ปัญหาเกี่ยวกับการแปล" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด" },{ "type": "thumb-down", "id": "otherDown", "label":"อื่นๆ" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"เข้าใจง่าย" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"แก้ปัญหาของฉันได้" },{ "type": "thumb-up", "id": "otherUp", "label":"อื่นๆ" }]