ตั้งค่าโปรเจ็กต์ Android Studio

หน้านี้จะอธิบายวิธีกําหนดค่าโครงการ Android Studio เพื่อใช้ Maps SDK สําหรับ Android โดยไม่ต้องใช้เทมเพลต Google Maps ที่มีรายละเอียดใน Startstart

เทมเพลต Google Maps จะกําหนดค่าและเพิ่มแผนที่พื้นฐานลงในโปรเจ็กต์ Android Studio ใหม่โดยอัตโนมัติ อย่างไรก็ตาม คุณเพิ่มแผนที่ลงในโครงการ Android ที่ใช้เทมเพลต Android Studio อื่นได้ หากต้องการดําเนินการดังกล่าว คุณต้องกําหนดค่าโครงการด้วยตนเอง แล้วเพิ่มแผนที่

ขั้นตอนที่ 1: ตั้งค่า Android Studio

  1. ต้องมี Android Studio Arctic Fox ขึ้นไป หากยังไม่ได้ดําเนินการ ให้ดาวน์โหลดและติดตั้ง
  2. ตรวจสอบว่าคุณใช้ ปลั๊กอิน Android Gradle เวอร์ชัน 7.0 ขึ้นไปใน Android Studio

ขั้นตอนที่ 2 ตั้งค่า SDK

ไลบรารี Maps SDK สําหรับ Android มีให้ใช้งานผ่าน ที่เก็บ Maven ของ Google หากต้องการเพิ่ม SDK ลงในแอป ให้ทําตามขั้นตอนต่อไปนี้

  1. ในไฟล์ settings.gradle ระดับบนสุด ให้ระบุพอร์ทัลปลั๊กอิน Gradle, ที่เก็บของ Google Maven และที่เก็บส่วนกลางของ Maven ในส่วนบล็อก pluginManagement บล็อก pluginManagement ต้องอยู่ก่อนคําสั่งอื่นๆ ในสคริปต์
    pluginManagement {
        repositories {
            gradlePluginPortal()
            google()
            mavenCentral()
        }
    } 
  2. ในไฟล์ settings.gradle ระดับบนสุด ให้ใส่ที่เก็บ Maven ของ Google และที่เก็บส่วนกลางของ Maven ภายในบล็อก dependencyResolutionManagement
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    } 
  3. ในไฟล์ build.gradle ระดับโมดูล ให้เพิ่มทรัพยากรบริการ Google Play สําหรับ Maps SDK สําหรับ Android
    dependencies {
        implementation 'com.google.android.gms:play-services-maps:18.1.0'
        // ...
    } 
  4. ในไฟล์ build.gradle ระดับโมดูล ให้ตั้งค่า compileSdk และ minSdk เป็นค่าต่อไปนี้
    android {
        compileSdk 31
    
        defaultConfig {
            minSdk 19
            // ...
        }

ขั้นตอนที่ 3: เพิ่มคีย์ API ลงในโปรเจ็กต์

ส่วนนี้จะอธิบายวิธีเก็บคีย์ API เพื่อให้แอปอ้างอิงได้อย่างปลอดภัย คุณไม่ควรตรวจสอบคีย์ API ในระบบควบคุมเวอร์ชัน เราจึงขอแนะนําให้เก็บคีย์ดังกล่าวในไฟล์ local.properties ซึ่งอยู่ในไดเรกทอรีรากของโปรเจ็กต์ ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ local.properties ได้ที่ไฟล์พร็อพเพอร์ตี้ Gradle

หากต้องการเพิ่มประสิทธิภาพการทํางานนี้ เราขอแนะนําให้คุณใช้ปลั๊กอิน Gradle สําหรับ Android วิธีติดตั้งปลั๊กอินและเก็บคีย์ API

  1. ใน Android Studio ให้เปิดไฟล์ build.gradle ระดับโปรเจ็กต์แล้วเพิ่มโค้ดต่อไปนี้ลงในองค์ประกอบ dependencies ในส่วน buildscript
    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
    }
  2. จากนั้นเปิดไฟล์ build.gradle ระดับโมดูลแล้วเพิ่มโค้ดต่อไปนี้ลงในองค์ประกอบ plugins
    id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
        
  3. บันทึกไฟล์และซิงค์โปรเจ็กต์ของคุณกับ Gradle
  4. เปิด local.properties ในไดเรกทอรีระดับโปรเจ็กต์ แล้วเพิ่มโค้ดต่อไปนี้ แทนที่ YOUR_API_KEY ด้วยคีย์ API
    MAPS_API_KEY=YOUR_API_KEY
        
  5. บันทึกไฟล์
  6. ในไฟล์ AndroidManifest.xml ให้ไปที่ com.google.android.geo.API_KEY และอัปเดต android:value attribute ดังนี้
    <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 ได้เพียงชื่อเดียวเท่านั้น หากระบุทั้งคู่ API จะส่งข้อยกเว้น

ขั้นตอนที่ 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 Legacy

หากคุณใช้ 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 4.0 ขึ้นไปและมี Google API

  • หากต้องการใช้อุปกรณ์ Android ให้ทําตามวิธีการที่เรียกใช้แอปในอุปกรณ์ฮาร์ดแวร์
  • หากต้องการใช้โปรแกรมจําลอง Android คุณจะสร้างอุปกรณ์เสมือนจริงและติดตั้งโปรแกรมจําลองได้โดยใช้ โปรแกรมจัดการอุปกรณ์เสมือน Android (AVD) ที่มาพร้อมกับ Android Studio

ขั้นตอนถัดไป

เมื่อกําหนดค่าโปรเจ็กต์แล้ว คุณจะเพิ่มแผนที่ได้