การตั้งค่าสำหรับการพัฒนาด้วย Cast Application Framework (CAF) สำหรับ Android

ข้อกำหนดเบื้องต้น

Google Cast SDK สำหรับ Android เป็นส่วนหนึ่งของ SDK บริการ Google Play และไม่จำเป็นต้องดาวน์โหลดแยกต่างหาก

หมายเหตุ: บริการ Google Play ช่วยให้คุณเข้าถึง API ต่างๆ เพื่อสร้างโฆษณา รวบรวมข้อมูลวิเคราะห์ ตรวจสอบสิทธิ์ผู้ใช้ ผสานรวมแผนที่ และอื่นๆ อีกมากมาย ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของบริการ Google Play คุณจำเป็นต้องตรวจสอบว่าได้ติดตั้ง APK ของบริการ Google Play ที่ถูกต้องในอุปกรณ์ของผู้ใช้แล้ว เนื่องจากการอัปเดตอาจไม่ส่งถึงผู้ใช้ทั้งหมดโดยทันที

เพิ่มบริการ Google Play ในโปรเจ็กต์

เลือกสภาพแวดล้อมการพัฒนาด้านล่างและเพิ่มบริการ Google Play ลงในโปรเจ็กต์โดยทำตามขั้นตอนที่ให้ไว้

Android Studio

ในการทำให้ API บริการ Google Play พร้อมใช้งานสำหรับแอปของคุณ ให้ทำดังนี้

  1. เปิดไฟล์ build.gradle ในไดเรกทอรีโมดูลของแอปพลิเคชัน

    หมายเหตุ: โปรเจ็กต์ Android Studio จะมีไฟล์ build.gradle ระดับบนสุดและไฟล์ build.gradle สำหรับแต่ละโมดูล อย่าลืมแก้ไขไฟล์ของโมดูลแอปพลิเคชัน ดูข้อมูลเพิ่มเติมเกี่ยวกับ Gradle ได้ที่ การสร้างโปรเจ็กต์ด้วย Gradle

  2. ยืนยันว่า google() รวมอยู่ใน repositories ที่ระบุไว้แล้ว
    repositories {
        google()
    }
    
  3. เพิ่มกฎบิลด์ใหม่ในส่วน dependencies สำหรับ play-services เวอร์ชันล่าสุด ตัวอย่างเช่น
    apply plugin: 'com.android.application'
        ...
    
        dependencies {
            implementation 'androidx.appcompat:appcompat:1.3.1'
            implementation 'androidx.mediarouter:mediarouter:1.2.5'
            implementation 'com.google.android.gms:play-services-cast-framework:21.4.0'
        }
    

    อย่าลืมอัปเดตหมายเลขเวอร์ชันนี้ทุกครั้งที่บริการ Google Play ได้รับการอัปเดต

    หมายเหตุ: หากจำนวนการอ้างอิงเมธอดในแอปเกินขีดจํากัด 6.5 หมื่นรายการ แอปอาจคอมไพล์ไม่ได้ คุณอาจบรรเทาปัญหานี้ได้เมื่อคอมไพล์แอปโดยระบุเฉพาะ API ของบริการ Google Play ที่แอปใช้ แทนที่จะเป็น API ทั้งหมด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีดำเนินการ โปรดดูเลือกคอมไพล์ API ลงในไฟล์ปฏิบัติการของคุณ

  4. บันทึกการเปลี่ยนแปลงและคลิกซิงค์โปรเจ็กต์กับ Gradle Files ในแถบเครื่องมือ

IDE อื่นๆ

ในการทำให้ API บริการ Google Play พร้อมใช้งานสำหรับแอปของคุณ ให้ทำดังนี้

  1. คัดลอกโปรเจ็กต์ไลบรารีที่ <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ ไปยังตำแหน่งที่คุณดูแลโปรเจ็กต์แอป Android
  2. ในโปรเจ็กต์แอป ให้อ้างอิงโปรเจ็กต์ไลบรารีบริการ Google Play ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีดำเนินการนี้ได้ใน การอ้างอิงโปรเจ็กต์ไลบรารีในบรรทัดคำสั่ง

    หมายเหตุ: คุณควรอ้างอิงสำเนาของไลบรารีที่คัดลอกไปยังพื้นที่ทำงานสำหรับการพัฒนา และไม่ควรอ้างอิงไลบรารีจากไดเรกทอรี Android SDK โดยตรง

  3. หลังจากที่เพิ่มไลบรารีบริการ Google Play เป็นทรัพยากร Dependency สำหรับโปรเจ็กต์แอปแล้ว ให้เปิดไฟล์ Manifest ของแอป แล้วเพิ่มแท็กต่อไปนี้เป็นแท็กย่อยขององค์ประกอบ <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

เมื่อตั้งค่าโปรเจ็กต์เพื่ออ้างอิงโปรเจ็กต์ไลบรารีแล้ว คุณจะเริ่มพัฒนาฟีเจอร์ด้วย API ของบริการ Google Play ได้

สร้างข้อยกเว้น Proguard

เพื่อป้องกันไม่ให้ ProGuard ตัดคลาสที่จำเป็นออก ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์ /proguard-project.txt

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames class * implements android.os.Parcelable
-keepclassmembers class * implements android.os.Parcelable {
  public static final *** CREATOR;
}

-keep @interface android.support.annotation.Keep
-keep @android.support.annotation.Keep class *
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <methods>;
}

-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
  @com.google.android.gms.common.annotation.KeepName *;
}

-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep public @com.google.android.gms.common.util.DynamiteApi class * {
  public <fields>;
  public <methods>;
}

-dontwarn android.security.NetworkSecurityPolicy