สมาคมประชาชาติแห่งเอเชียตะวันออกเฉียงใต้ ( Association of South East AsianNations หรือ ASEAN
ภาคผนวก - Siam University · 2018-11-01 · 57 วิธีหำ Debug Keystore OS X...
Transcript of ภาคผนวก - Siam University · 2018-11-01 · 57 วิธีหำ Debug Keystore OS X...
ภาคผนวก
56
ภาคผนวก ก
วธลงทะเบยน Android Map API
วธลงทะเบยน Android Map API
สงทจะตองท ำเพอเรยกใชงำน Google Maps จะมดงน
• น ำรห ส SHA1 จำก Keystore ไปขอ API Key ส ำห รบ Google Maps ท Google Developer Console เพอก ำหนดโปรเจคของแอปพลเคชน • เพม Dependencies ของ Google Play Services ลงในโปรเจคของแอปพลเคชน • ก ำหนด Layout XML ส ำหรบแสดง Google Maps • เรยกใชงำนดวยค ำสงส ำหรบ Google Maps เพอใชงำนตำมตองกำร การขอ API Key ส าหรบ Google Maps
กำรขอ API Key นนอำจจะมขนตอนยงยำกเลกนอย แตกตองท ำ เพรำะวำ API Key เปนสง
ททำง Google ใชระบวำแอปของนกพฒนำคนไหนมกำรเรยกใชงำน Google Maps บำง ถงแมวำ
Google Maps จะใหใชงำนฟรส ำหรบฟเจอรเบองตน (ฟเจอรพเศษถงจะตองเสยเงน)
โดย API Key นนจะสมพนธกบชดรหส SHA1 ใน Keystore ทผทหลงเขำมำอำนใช Build
แอปพลเคชนตวนนๆและสมพนธกบ Package ของแอปพลเคชนทเรยกใชงำน ดงนน API Key น
จะผกกบแอปพลเคชนตวเดยวเทำนน ไมสำมำรถน ำไปใชกบแอปตวอนได
ชดรหส SHA1 จำก Keystore
ชดรหส SHA1 จำก Keystore ทใชเพอขอ API Key นนจะมอยสองแบบดวยกนคอ SHA1 ของ
Debug Keystore และ Signed Keystore โดยมเงอนไขอยวำ
• ใช SHA1 จำก Debug Keystore ในขณะทก ำลงพฒนำแอปพลเคชนอย ยงไมได Public ขน
Google Play Store หรอ 3rd Party App Store
• ใช SHA1 จำก Signed Keystore เมอพฒนำแอปพลเคชนเสรจแลว และพรอมจะ Public ขน
Google Play Store หรอ 3rd Party App Store
57
วธหำ Debug Keystore
OS X หรอ Linux
~/.android/debug.keystore
Windows
C:\Users\<your_user_name>\.android\debug.keystore
กำรอำนชดรหส SHA1 จำก Keystore
จะตองท ำผำน Terminal (OS X หรอ Linux) หรอ Command Prompt (Windows) ดงน
keytool -list -v -keystore <keystore_file_path> -alias <alias_name> -storepass <alias_pass> -keypass <keystore_pass>
• keystore_file_path คอทอยของไฟล Keystore ทตองกำรอำน SHA1
• alias_name Alias Name ของ Keystore นนๆ
• alias_pass รหสผำนส ำหรบ Alias Name
• keystore_pass รหสผำนส ำหรบ Keystore
ถำเปน Debug Keystore ทำง Google กไดก ำหนดตำยตว
• Alias Name คอ androiddebugkey
• Alias Password คอ android
• Keystore Password คอ android
58
OS X และตองกำร SHA1 ของ Debug Keystore กจะตองใชค ำสงดงน
keytool -list -v -keystore ~/.android/ -alias androiddebugkey -storepass android -
keypass android
ผลทไดจะเปนดงน
รปท ก.1 แสดง SHA1
SHA1 มชดรหสแสดงอย 20 ชด น ำ SHA1 ทไดจำกตรงนไปขอ API Key จำก Google Developer Console
ขอ API Key จำก Google Developer Console
เขำหนำเวบ Google Developer Console แลว Login ดวย Google Account จำกนนกจะเขำสหนำแรกของเวบ กดปม Create Project
รปท ก.2 API Key จำก Google Developer Console
59
จำกนนใหพมพชอโปรเจคของเรำ และกดปม Create
รปท ก.3 API Key จำก Google Developer Console (ตอ)
เมอสรำงเสรจแลวกจะเขำสหนำ Overview ของโปรเจคทนท ใหกดเลอกท APIs & auth > APIs ทอยฝงซำยมอของหนำเวบ
รปท ก.4 API Key จำก Google Developer Console (ตอ)
60
ทหนำนจะเปนกำรเลอก API ของ Google วำจะตองกำรใช Google Services ตวไหน ใหเลอก Google Maps Android API
รปท ก.5 API Key จำก Google Developer Console (ตอ)
กดทปม Enable API เพอเปดใชงำน Google Maps Android API
รปท ก.6 API Key จำก Google Developer Console (ตอ)
61
เมอเปดใชงำนเรยบรอยแลว กตองไปท ำกำรขอAPI Key
รปท ก.7 API Key จำก Google Developer Console (ตอ)
ใหเลอกไปท APIs &auth > Credentials แลวกดทปม Create new Key ท Public API access เพอขอ API Key
รปท ก.8 API Key จำก Google Developer Console (ตอ)
62
จะมหนำตำงเลกๆแสดงขนมำวำจะขอ Key ส ำหรบอะไร ใหกดเลอกทปม Android Key
รปท ก.9 API Key จำก Google Developer Console 21(ตอ)
จะมหนำตำงใหใส SHA1 กบ Package Name ของแอปพลเคชนลงในชองวำง
รปท ก.10 API Key จำก Google Developer Console (ตอ)
63
ตวอยำงก ำหนด Package Name ไววำ com.akexorcist.awesomeapp เวลำกรอกลงไปในชองวำงจะตองใส SHA1 ตำมดวย Package Name โดยมเครองหมำย ; เปนตวคน
<sha1_key>;<package_name>
รปท ก.11 API Key จำก Google Developer Console (ตอ)
และ API Key สำมำรถใชรวมกนกบหลำยๆแอป โดยใสหลำยๆบรรทดแบบน
รปท ก.12 API Key จำก Google Developer Console (ตอ)
เมอเสรจแลวกกดปม Create
ใหดท Public API Access จะม API Key แสดงอย พรอมกบบอก Android applications ทกรอกลงไปเมอครดวย ใหเอำ API Key ไปใชงำนในแอปไดเลย
64
น า API Key ไปใชในแอปพลเคชน
เพม Dependencies ของ Google Play Services ลงในโปรเจค
ในกรณทพ งสรำงโปรเจคขนมำจำก Android Studio กใหเปด build.gradle ของโมดลทชอวำ app ขนมำไดเลย แตถำ Import มำจำก Eclipse อกทกใหดวำโมดลตวไหนคอโมดลหลกของแอพ แลวจงเปด build.gradle ของโมดลตวนนๆขนมำ
จำกนนกเพม Dependencies เขำไปดงน
compile 'com.google.android.gms:play-services-maps:7.5.0'
รปท ก.13 API Key จำก Google Developer Console (ตอ)
ค ำสงขำงบนเปนกำรเพม Google Maps อยำงเดยว แตถำผทหลงเขำมำอำนเรยกใชงำน Google Play Services จ ำนวนหลำยตวกสำมำรถเพมไปทงหมดไดดวยค ำสง
compile 'com.google.android.gms:play-services:7.5.0'
รปท ก.14 API Key จำก Google Developer Console (ตอ)
65
ก าหนดคาใน Android Manifest
อยำงแรกสดคอกำรก ำหนด Meta Data ส ำหรบเวอรชนของ Google Play Services ใน Tag ของ <application> ของ AndroidManifest.xml ดงน
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
รปท ก.15 API Key จำก Google Developer Console (ตอ)
Meta Data ตวนเปนกำรก ำหนดใหรวำ Google Play Services ทใชงำนอยเปนเวอรชนอะไร เพรำะถำเวอรชนของแอพเรำใหมกวำทมอยในเครอง ระบบกจะใหผใชอพเดท Google Apps ในเครองแทน
66
ตอไปกก ำหนด API Key ส ำหรบใชงำน Google Maps โดยจะใสเปน Meta Data ใน Tag
ของ <application> เชนเดม
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="your_api_key"/>
ตรง your_api_key ใหใส API Key ทไดจำก Google Developer Console
รปท ก.16 API Key จำก Google Developer Console(ตอ)
ตอไปเพม Permission เขำไปดงน
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
รปท ก.17 API Key จำก Google Developer Console(ตอ)
• INTERNET ดำวนโหลดแผนทจำก Server
• ACCESS_NETWORK_STATE ตรวจสอบสถำนะกำรเชอมตอของ Cellular Data กอนจะดำวนโหลดแผนท
• ACCESS_WIFI_STATE ตรวจสอบสถำนะกำรเชอมตอของ WIFi กอนจะดำวนโหลดแผนท
• WRITE_EXTERNAL_STORAGE เพอท ำ Cache ส ำหรบขอมลแผนท
67
และจะมเพมอกสองตวเมอผทหลงเขำมำอำนเรยกใชงำนค ำสงแสดงต ำแหนงปจจบนของผใชบน Google Maps แตถำไมไดใชงำนกไมจ ำเปนตองใสกได โดยใหเลอกอยำงใดอยำงหนงกพอ ขนอยกบผทหลงเขำมำอำนวำตองกำรควำมแมนย ำในกำรระบต ำแหนงของผใชมำกนอยแคไหน
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
รปท ก.18 API Key จำก Google Developer Console(ตอ)
• ACCESS_COARSE_LOCATION ใช Cellular Data หรอ WiFi เพอหำต ำแหนงของผใชแบบครำวๆ ต ำแหนงทไดจะไมมควำมแมนย ำมำกนก
• ACCESS_FINE_LOCATION ใช GPS เพอหำต ำแหนงของผใชใหแมนย ำทสดเทำทท ำได
68
เนองจำก Google Maps ใช OpenGL ES 2.0 ในกำรแสดงผลแผนท ดงนนจะตองเพม Tag เพอใชงำน OpenGL ES 2.0 ดงน
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
รปท ก.19 API Key จำก Google Developer Console(ตอ)