การตั้งค่าสําหรับการพัฒนาด้วย 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.3.0'
        }
    

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

    หมายเหตุ: หากจํานวนเมธอดที่อ้างอิงในแอปเกินขีดจํากัด 65, 000 รายการ แอปอาจไม่สามารถคอมไพล์ได้ คุณอาจบรรเทาปัญหานี้เมื่อคอมไพล์แอปโดยระบุเฉพาะ 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