Google Maps Android API v2 实践

参考:

http://developer.android.com/google/play-services/maps.html

https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api

1.       Retrieve information about yourapplication's certificate.

2.       Register a project in the GoogleAPIs Console and add the Maps API as a service for the project.

3.       Once you have a project set up,you can request one or more keys.

4.       Finally, you can add your key toyour application and begin development.

# Displaying certificate information

# Displaying the release certificatefingerprint
方法一:

C:\Users\Administrator>keytool-list -keystore C:\Users\Administrator\.android\d

ebug.keystore

输入密钥库口令:(默认android)

 

密钥库类型: JKS

密钥库提供方: SUN

 

您的密钥库包含 1 个条目

 

androiddebugkey, 2013-7-11,PrivateKeyEntry,

证书指纹 (SHA1):5A:74:99:61:5B:04:A7:26:EF:04:3E:30:84:DA:80:89:5D:E9:45:E5

 

 

 

*******************************************

*******************************************

 

 

C:\Users\Administrator>keytool -list -keystoreC:\Users\Administrator\.android\d

ebug.keystore -v

输入密钥库口令:(默认android)

 

密钥库类型: JKS

密钥库提供方: SUN

 

您的密钥库包含 1 个条目

 

别名: androiddebugkey

创建日期: 2013-7-11

条目类型: PrivateKeyEntry

证书链长度: 1

证书[1]:

所有者: CN=Android Debug, O=Android, C=US

发布者: CN=Android Debug, O=Android, C=US

序列号: 29d3c9ba

有效期开始日期: Thu Jul 11 12:31:29 CST 2013,截止日期: Sat Jul 04 12:31:29 CST

2043

证书指纹:

         MD5:FF:C7:E7:E0:16:B3:11:8E:68:A7:32:85:B8:54:65:E4

         SHA1:5A:74:99:61:5B:04:A7:26:EF:04:3E:30:84:DA:80:89:5D:E9:45:E5

         SHA256:3D:36:88:58:6B:52:4E:BC:B4:28:18:22:EC:60:80:25:1E:97:2E:0E:FC:

4F:A6:97:53:5A:2C:EF:B9:BD:1F:B9

         签名算法名称: SHA256withRSA

         版本: 3

 

扩展:

 

#1: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: 6C A0 BD 2D C6 32 53 4D   DD B9 B2 4B CC 63 B8 14 l..-.2SM...K.c..

0010: 3D CB 8F 1A                                      =...

]

]

 

 

 

*******************************************

*******************************************

或者:

C:\Users\Administrator>keytool-list -v -keystore C:\Users\Administrator\.androi

d\debug.keystore -aliasandroiddebugkey

输入密钥库口令:

别名: androiddebugkey

创建日期: 2013-7-11

条目类型: PrivateKeyEntry

证书链长度: 1

证书[1]:

所有者: CN=Android Debug, O=Android, C=US

发布者: CN=Android Debug, O=Android, C=US

序列号: 29d3c9ba

有效期开始日期: Thu Jul 11 12:31:29 CST 2013,截止日期: Sat Jul 04 12:31:29 CST

2043

证书指纹:

        MD5: FF:C7:E7:E0:16:B3:11:8E:68:A7:32:85:B8:54:65:E4

        SHA1: 5A:74:99:61:5B:04:A7:26:EF:04:3E:30:84:DA:80:89:5D:E9:45:E5

        SHA256: 3D:36:88:58:6B:52:4E:BC:B4:28:18:22:EC:60:80:25:1E:97:2E:0E:FC:

4F:A6:97:53:5A:2C:EF:B9:BD:1F:B9

         签名算法名称: SHA256withRSA

         版本: 3

 

扩展:

 

#1: ObjectId: 2.5.29.14Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: 6C A0 BD 2D C6 32 53 4D  DD B9 B2 4B CC 63 B8 14  l..-.2SM...K.c..

0010: 3D CB 8F 1A                                      =...

]

]

 方法二:

eclipse->Window->Preferences->Android->Build->SHA1 fingerprint:

#Creating an API Project

https://code.google.com/apis/console/ 

登录进去:




创建一个项目,修改项目名,打开Google Maps Android API v2开关:

 

 

# Obtaining an API Key

 



#Adding the API Key to your application

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="API_KEY" />
<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>

# Add a Map for test

https://developers.google.com/maps/documentation/android/intro#sample_code

 

Sample Code

Sample code isbundled with the Google Play services SDK.First you must add Google Play services as an Android library project asfollows:

1.       Select File > Import > Android > ExistingAndroid Code Into Workspace and click Next.

2.       Select Browse...,enter <android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib, and click Finish.

Once you have installed Google Play services, you can viewthe sample code, or run the sample app locally. The sample app is an Eclipseproject that you can run on your device as follows:

1.       Select File > Import > Android > ExistingAndroid Code Into Workspace and click Next.

2.       Select Browse...,enter <android-sdk-folder>/extras/google/google_play_services/samples/maps, and click Finish.

3.       Select Project > Properties,select Java Build Path, and navigate to Libraries.

4.       Select Add ExternalJars, include the following jar files, and click OK:+ <android-sdk-folder>/extras/android/compatibility/v4/android-support-v4.jar

5.       Add your own Google Maps Android API key.

6.       Select Run > Run totest the sample app.

Note: 

1. com.google.android.gms.maps.MapFragment  -->  com.google.android.gms.maps.SupportMapFragment

2.会出现:你必须更新Google Play 服务才能运行此应用.照做,在真机上更新(下载)Google Play服务。

 

        

 

效果:





Note: 

1. 经多次试验表明每新生成的API key 不是立即有效,需要过一会才会儿(时间不定)有效,否则会报错,如下:

 08-22 17:05:27.323: E/System(22026): Uncaught exception thrown by finalizer
08-22 17:05:27.329: E/System(22026): java.io.IOException: close failed: EIO (I/O error)
08-22 17:05:27.329: E/System(22026): at libcore.io.IoUtils.close(IoUtils.java:41)
08-22 17:05:27.329: E/System(22026): at java.io.RandomAccessFile.close(RandomAccessFile.java:166)
08-22 17:05:27.329: E/System(22026): at java.io.RandomAccessFile.finalize(RandomAccessFile.java:175)
08-22 17:05:27.329: E/System(22026): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:186)
08-22 17:05:27.329: E/System(22026): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:169)
08-22 17:05:27.329: E/System(22026): at java.lang.Thread.run(Thread.java:856)
08-22 17:05:27.329: E/System(22026): Caused by: libcore.io.ErrnoException: close failed: EIO (I/O error)
08-22 17:05:27.329: E/System(22026): at libcore.io.Posix.close(Native Method)
08-22 17:05:27.329: E/System(22026): at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
08-22 17:05:27.329: E/System(22026): at libcore.io.IoUtils.close(IoUtils.java:38)
08-22 17:05:27.329: E/System(22026): ... 5 more
08-22 17:05:27.329: E/System(22026): Uncaught exception thrown by finalizer
08-22 17:05:27.333: E/System(22026): java.io.IOException: close failed: EIO (I/O error)
08-22 17:05:27.333: E/System(22026): at libcore.io.IoUtils.close(IoUtils.java:41)
08-22 17:05:27.333: E/System(22026): at java.io.RandomAccessFile.close(RandomAccessFile.java:166)
08-22 17:05:27.333: E/System(22026): at java.io.RandomAccessFile.finalize(RandomAccessFile.java:175)
08-22 17:05:27.333: E/System(22026): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:186)
08-22 17:05:27.333: E/System(22026): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:169)
08-22 17:05:27.333: E/System(22026): at java.lang.Thread.run(Thread.java:856)
08-22 17:05:27.333: E/System(22026): Caused by: libcore.io.ErrnoException: close failed: EIO (I/O error)
08-22 17:05:27.333: E/System(22026): at libcore.io.Posix.close(Native Method)
08-22 17:05:27.333: E/System(22026): at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
08-22 17:05:27.333: E/System(22026): at libcore.io.IoUtils.close(IoUtils.java:38)
08-22 17:05:27.333: E/System(22026): ... 5 more
08-22 17:05:44.323: E/Google Maps Android API(22026): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).



ps : 1. csdn 的图片要先上传然后把url 插入对应位置。开始直接粘贴没行。
           2.  谷歌地图定位精确度>百度地图定位>高德地图定位      GPS 定位精确度 > wifi > 基站
          



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值