18 September 2014

แนะนำให้รู้จักกับ API ของ Google Play Services

Updated on

        "Google Play Services" ชื่อนี้คงไม่มีผู้ใช้แอนดรอยด์คนไหนที่ไม่รู้จักกันเนอะ เพราะว่าเป็นบริการของ Google ที่รวมไว้ในตัวเดียวกันสำหรับการใช้งานบริการต่างๆของ Google ซึ่ง Android เกือบทุกตัวนั้นจะมีบริการตัวนี้ติดตั้งไว้ในเครื่องอยู่แล้ว (เครื่องที่ไม่มีก็คือไม่มี Google Apps ทั้งหมด)

        แต่ทว่านักพัฒนาอย่างเราเคยเรียกใช้เจ้าตัวนี้บ่อยกันมากแค่ไหนล่ะ? Google Maps? In-app Purchase? ดังนั้นบทความนี้จะมาแนะนำให้รู้จักกันหน่อยว่ามันคืออะไร และมันทำอะไรได้มากกว่าที่รู้ๆกันซักแค่ไหน

        หัวข้อทั้งหมดในบทความนี้
                • Google Play Services นั้นคืออะไร?
                • การเตรียมโปรเจคสำหรับ ADT หรือ Eclipse
                • การเตรียมโปรเจคสำหรับ Android Studio

Google Play Services นั้นคืออะไร?

        Google Play Services เป็นแหล่งรวม Services เกือบทุกๆตัวของ Google บน Android ให้มาอยู่ในจุดๆเดียวกัน เพื่อที่จะได้ไม่ต้องติดตั้งอะไรเยอะแนะมากมาย ดังนั้นเวลาที่แอพฯตัวใดๆจะเรียกใช้ Google Services ซักตัวผ่าน API ก็จะต้องเรียกผ่าน Google Play Services (ถ้า Request URL เพื่อดึงข้อมูลเป็น XML จะเป็นคนละแบบกัน)


        โดยบริการหลักๆใน Google Play Services จะมีดังนี้

                • Google Play Game Services
                • Location APIs
                • Google Plus API
                • Google Maps Android API v2
                • Google Drive Android API 
                • Google Cast Android API
                • Google Mobile Ads
                • Google Wallet Instant Buy
                • Google Play In-app Billing
                • Google Cloud Messaging for Android
                • Google Cloud Save
                • Google Play Distribution
                • App Indexing API
                • Google Analytics
                • Panorama Viewer
                • Google Account
                • Wearable API
                • Google Fit API
                • อื่นๆ

        เรียกได้ว่า Google Play Services เป็น "โคตรไลบรารี" เลยก็ว่าได้ ซึ่งมีข้อดีคือผู้ใช้เกือบทุกเครื่องจะมีโคตรไลบรารีตัวนี้อยู่ในเครื่องแล้ว และยังอัพเดทล่าสุดด้วย

        ส่วนการใช้งาน Services ก็จะแตกต่างกันไป ดังนั้นเวลาจะเรียกใช้งานตัวไหนก็แนะนำให้เข้าไปดู References การใช้งานของแต่ละตัวใน Google Services [Android Developer]


การเตรียมโปรเจคให้พร้อมก่อนจะเริ่ม

        สำหรับการจะเรียกใช้งาน Google Play Services นั้นจะบังคับแค่ว่าต้องใช้กับ Google Play Services Library ที่เหลือก็จะเป็นส่วนของ Code ล้วนๆ ดังนั้นสิ่งที่ต้องทำก็มีแค่สร้างโปรเจคขึ้นมาแล้วเพิ่ม Google Play Services Library เข้าไปนั่นเอง!!!


สำหรับ ADT หรือ Eclipse

        • ตรวจสอบก่อนว่า Android SDK ในเครื่องได้ติดตั้ง Google Play Services แล้วหรือไม่ โดยเข้าไปที่ Window > Android SDK Manager ถ้ายังไม่มีก็ติดตั้งให้เรียบร้อยซะ





        • จากนั้นให้ Import Project ของตัวนี้เข้ามาไว้ในโปรแกรมซะ โดยเลือกไปที่ File > Import...



        • โดยเลือก Android > Existing Android Code Into Workspace



        • จากนั้นก็เลือก Path ไปที่ Google Play Services ที่ดาวน์โหลดมาจาก Android SDK Manager โดยจะอยู่ที่ ..\sdk\extras\google\google_play_services จะเห็นว่ามีทั้ง Library และตัวอย่างอีกมากมาย ให้เลือกแค่ Library พอ (ตัวแรกสุด) อย่าลืมติ๊กเลือกที่ Copy projects into workspace ด้วย แล้วกด Finish ได้เลย



        • เท่านี้ก็ Import เข้ามาเรียบร้อยแล้ว



        • เนื่องจาก Library ใช้เป็น android-9 (API 9 หรือ Android 2.2) ดังนั้นถ้าไม่ได้ติดตั้งไว้ก็จะแจ้งเตือนในหน้าต่าง Console ดังนี้



        ปัญหานี้ไม่จำเป็นต้องไปโหลด Android 2.2 API 9 มาลงในเครื่องนะครับ เพียงแค่ไปกำหนดให้ Google Play Services Library ใช้เป็นเวอร์ชันที่ติดตั้งไว้แล้วก็พอ โดยคลิกขว่าที่ google-play-services_libs เลือกเลือก Properties



        • เลือกแถบ Android แล้วเลือกเวอร์ชันที่ติดตั้งไว้ใน Android SDK Manager (เลี่ยง Android L และ Android 4.4W) แล้วกดปุ่ม OK ก็เป็นอันเสร็จ



        • เวลาสร้างโปรเจคที่จะใช้งาน Google Play Services ก็ให้กำหนดใน Properties ของโปรเจคตัวนั้นๆด้วยว่าใช้ Library ของ Google Play Services




        และต้องประกาศ Meta-data สำหรับ Google Play Services Version เข้าไปใน Android Manifest ทุกครั้งสำหรับใช้งาน Google Play Services โดยให้ประกาศไว้ภายใน <application>...</application>

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />


        ตัวอย่างเช่น

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>

    ...

    <application ... >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            
            ...

        </activity>
        
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        
    </application>
    
</manifest>



สำหรับ Android Studio

        บน Android Studio จะใช้ Gradle เข้ามาช่วยในการกำหนดให้ง่ายขึ้น โดยกำหนดใน build.gradle ตรง dependencies ว่า

compile 'com.google.android.gms:play-services:5.2.08'

        หมายเหตุ - 5.2.08 จะเปลี่ยนไปตามเวอร์ชันใหม่ๆ

        แต่ถ้าจะให้สะดวกแบบสุดๆ ตอนสร้างโปรเจคก็จะมีให้เลือกอยู่แล้ว



        แถมเลือกได้ด้วยว่าจะให้เตรียมโค๊ดสำหรับ API ตัวไหน



        เมื่อสร้างเสร็จแล้วก็จะมีการเตรียมโค๊ดโดยเบื้องต้นมาให้แล้ว ในกรณีที่ไม่ได้ใช้ก็สามารถลบออกได้เลย


        Android Studio มันช่างสะดวกยิ่งนักกกกกกกกกกกกกก