在你开始学习的API之前,你需要下载的API,确保你有一个谷歌地图的Android API v2 key。API和key都是免费使用的。
概要:
创建一个使用谷歌地图的Android API v2的Android应用程序需要几个步骤。许多在这一节中的步骤将只被执行一次,但一些信息将是未来应用的一个方便的参考。添加一个映射到一个Android应用程序的整体过程如下:
1、下载和配置谷歌GPSSDK。谷歌地图的Android API是分布式的SDK的一部分。谷歌手机地图业务的用户必须下载SDK并配置谷歌手机地图业务静态库SDK。
2、获得一个API密钥。要做到这一点,你需要在谷歌API控制台项目注册,并得到你的应用程序的签名证书。
3、在指定的应用程序清单中(Manifest)的设置
4、添加一个映射到一个新的或现有的Android项目。
5、发布你的应用程序!
.
你可能希望开始看一些示例代码,它包括the Google Play services SDK sample code.
Getting the Google Maps Android API v2
The Google Maps API Key
注:谷歌地图的Android API v2的使用了一种新的密钥管理系统。从谷歌地图的Android V1应用存在的key,俗称它“MapView”,将不会与v2 API相同。
与地图API的谷歌地图服务器的访问,您必须在应用程序添加一个地图API的密钥。密钥是免费的,您可以使用它与您的任何应用程序调用的地图API,并支持无限数量的用户。你获得的地图API密钥从谷歌提供的API控制台应用程序的签名证书和包名称。一旦你有钥匙,你把它添加到你的应用程序添加一个元素到你的应用程序清单文件的AndroidManifest.xml。
了解的过程中,注册你的应用的一个密钥要求获得一些Android的发布过程和要求的知识。总之,所有的Android应用程序必须使用数字证书进行签名——你持有的私人密钥。由于数字证书是独特的,他们提供了一个简单的方法来唯一地标识您的应用程序。这使得它们可用于跟踪系统如谷歌GPS应用程序商店,并跟踪资源如谷歌地图服务器应用程序的使用。
注:参考Android指南了解更多关于数字证书的应用的信息。
地图API密钥被连接到特定的证书/包对,而不是用户或应用程序。你只需要为每个证书的一个密钥,无论你有多少用户的应用。使用相同的证书的应用程序可以使用相同的API的密钥。然而,建议的做法是标志的每一个与不同的证书申请和获得的每一个不同的密钥。
获取你的应用的一个密钥需要几个步骤。这些步骤进行了概述,并在下面的章节中详细描述。
Retrieve information about your application's certificate.
1、查看您的申请证书。
2、在谷歌API控制台和添加地图API为该使用的GPS服务的项目进行注册。
3、一旦你有了一个项目的设置,你可以要求一个或更多的钥匙。
4、最后,你可以为你的应用程序添加key并运行程序。
注:谷歌手机地图业务的用户还必须使他们的SDK API项目SDK。
Displaying certificate information(显示证书信息)
地图API密钥是基于一个短的应用程序的数字证书的形式,称为其SHA-1的指纹。指纹是常用的SHA-1哈希算法生成一个独特的文本字符串。由于指纹本身是独特的,谷歌地图使用它作为一个方法来确定你的应用。
显示您的证书SHA-1的指纹,首先确保您使用的是正确的证书。你可能会有两个证书:
调试证明:Android SDK工具生成的证书自动当你从命令行做一个“调试”建立,或当你建立和运行Eclipse项目没有出口作为一个发布的应用程序。只使用此证书,您测试的应用程序;不要试图发布一个应用程序的一个调试证书签名。调试证明是更详细的描述的部分签名在Android开发者文档调试模式。
释放证书:Android SDK工具生成的证书,当你做一个“释放”的建立与Ant的程序或eclipse程序。你也可以使用Keytool生成此证书的程序。使用此证书,你可以发布你的应用程序。
一旦你选择了正确的证书,您可以使用它的程序与V参数显示其SHA-1的指纹。关于它的更多信息,请参阅文档:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html。
注:以下部分的扩展的详细说明对如何生成调试或释放证书。
Displaying the debug certificate fingerprint(显示调试证书指纹)
找到您的密钥库的调试文件。文件名称是debug.keystore,而且是第一次你建立你的项目创建。默认情况下,它是存储在同一目录作为您的Android虚拟设备(AVD)文件:
OS X and Linux: ~/.android/
Windows Vista and Windows 7: C:\Users\your_user_name\.android\
1、如果你使用的是Eclipse ADT,和你不确定你的密钥库的调试设置,您可以选择Windows > Prefs > Android >版本检查的完整路径,然后你可以粘贴到一个文件管理器找到包含密钥库目录。
List the SHA-1 fingerprint.
2、列表的SHA-1的指纹。
对于Linux或Mac OS X,打开一个终端窗口并输入以下:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
对于Windows Vista和Windows 7,运行:
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore"-alias androiddebugkey -storepass android -keypass android
3、你可以看到:
Alias name: androiddebugkey Creation date:Jan01,2013 Entry type:PrivateKeyEntry Certificate chain length:1 Certificate[1]: Owner: CN=AndroidDebug, O=Android, C=US Issuer: CN=AndroidDebug, O=Android, C=US Serial number:4aa9b300 Validfrom:MonJan0108:04:04 UTC 2013until:MonJan0118:04:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version:3
开始SHA1包含证书的SHA-1指纹线。指纹是20个两位十六进制数的冒号分隔的序列。
Displaying the release certificate fingerprint(显示发布证书指纹)
1、找到你的发行证书的密钥库文件。没有默认的位置或名称的密钥库的释放。如果你不指定一个当你建立发布你的应用,构建将无法执行。APK无符号的,你必须签署之前,你可以发布它。为发布证书,你也需要证书的别名和密码的密钥和证书。你可以为所有的密钥在一个keystore输入别名列表:
keytool -list -keystore your_keystore_name
2、在终端输入下列命令提示符:
keytool -list -v -keystore your_keystore_name -alias your_alias_name
取代your_keystore_name具有完全限定路径和名称的密钥库,包括库的扩展。用别名你分配到证书时,你创造了它取代your_alias_name。
注意:为了保护您的密钥库和密钥,不进入storepass或keypass参数在命令行上,除非你确信你的计算机的安全。例如,在一个公共的电脑,有人可能会看到您的终端窗口历史或运行进程的列表,得到密码,然后有写访问您的签名证书。这将允许个人修改或自己更换你的应用。
3、你应该看到一个显示的是类似于此:
Alias name:<alias_name> Creation date:Feb02,2013 Entry type:PrivateKeyEntry Certificate chain length:1 Certificate[1]: Owner: CN=AndroidDebug, O=Android, C=US Issuer: CN=AndroidDebug, O=Android, C=US Serial number:4cc9b300 Validfrom:MonFeb0208:01:04 UTC 2013until:MonFeb0218:05:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version:3
开始SHA1包含证书的SHA-1指纹线。指纹是20个两位十六进制数的冒号分隔的序列。
Creating an API Project
一旦你有你的签名证书的指纹,创建或修改项目为您的应用程序在谷歌API控制台和注册的地图API。
获取关于API项目和注册:
在浏览器中,导航到谷歌的API控制台。
如果你还没有使用的谷歌API控制台前,会提示你创建一个你使用的谷歌地图跟踪你的Android API的使用方案。单击“创建项目;控制台创建一个新的项目称为API项目。在下一页,这个名字出现在左上角。重命名或以其他方式管理项目,请单击其名称。
如果你已经在使用谷歌API控制台,您将立即看到一个名单,您现有的项目和提供的服务。它使用一个新的项目,谷歌地图的Android API仍然是个好主意,所以选择项目的名字在左上角,然后单击“创建”。
你应该在主窗口中查看API和服务。如果你不,从左边的导航栏选择服务。
在页面的中心显示的服务列表中,向下滚动,直到你看到谷歌地图的Android API v2。对输入正确,点击开关指示灯,它是在。
这显示谷歌地图的Android API服务条款。如果你同意服务条款,请单击复选框下面的服务条款,然后单击“接受”。这将返回您的API和服务列表。
Obtaining an API Key(获取一个密钥)
如果你的应用程序与谷歌地图的Android API v2注册服务,那么你可以要求一个API密钥。每个项目允许注册多个密钥。
To get the key:
Navigate to your project in the Google APIs Console.
1、将你的项目导航到谷歌API控制台。
2、在左侧的导航栏上,单击“API Access”。
3、在出现的页面中,单击“Create New Android Key....”
4、在弹出的对话框中,输入SHA-1的指纹,然后一个分号,然后你的应用程序的软件包的名称。比如:
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexample
谷歌的Android程序API控制台的回应显示键(证书)其次是一四零字符的API密钥,例如:
AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0
复制这个密钥。你将在下一步用到它。
Adding the API Key to your application
最后一步是添加到您的应用程序的API的密钥。它在你的应用程序清单文件AndroidManifest.xml。从那里,地图API读取键值并将它传递到谷歌地图服务器,然后确认你访问谷歌地图数据。
To add the key to your application:
在AndroidManifest.xml,添加以下元素到<application> < /application>:
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="API_KEY"/>
1、你的API密钥代替api_key。这个元素集的密钥com.google.android.maps.v2.api_key的值api_key使API密钥可以运用到您的应用程序中的任何mapfragment。
.
保存AndroidManifest.xml并重新构建你的项目
Specify settings in the Application Manifest
在指定的应用程序清单中的设置
一个Android应用程序,使用谷歌地图的Android API应该在清单文件(AndroidManifest.xml)中指定了下列设置:
给应用程序使用Android系统的特征和对谷歌地图服务器的权限。
(推荐)通知,应用程序需要OpenGL ES版本
外部服务可以检测到这个通知,并采取相应的行动。例如,谷歌运用商城上的设备不显示没有应用OpenGL ES版本2。
地图API密钥的应用。密钥是你通过谷歌API控制台注册的谷歌地图服务。
本节描述了这些设置,以及如何将它们添加到AndroidManifest.xml。
Specifying permissions
指定的权限
通过在<manifest>的子元素<users-permission>添加权限,语法是:
<uses-permissionandroid:name="permission_name"/>
例如,要求Internet权限,添加:
<uses-permissionandroid:name="android.permission.INTERNET"/>
除了应用程序的其他部分所需的权限,您必须添加下列权限才能使用的谷歌地图的Android API:
•通过谷歌地图API用来从服务器下载的地图网络权限android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE允许API来检查连接状态以确定数据是否可以下载
•com.google.android.providers.gsf.permission.READ_GSERVICES允许API访问谷歌的网络服务。
•android.permission.WRITE_EXTERNAL_STORAGE允许API在设备的外部存储区缓存地图数据。
以下是推荐的权限,但如果可以你的应用程序不能访问用户的当前位置,以编程方式被忽视,或通过使My Location的层。
android.permission.ACCESS_COARSE_LOCATION 允许API使用WiFi或手机数据(或两者)来确定设备的位置
android.permission.ACCESS_FINE_LOCATION允许API使用全球定位系统(GPS)在一个很小的区域内来确定设备的位置。
<uses-permissionandroid:name="android.permission.INTERNET"/> <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permissionandroid: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-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
Requiring OpenGL ES version 2
需要OpenGL ES版本2
谷歌地图的Android API的使用OpenGL ES版本2的渲染图。如果没有安装OpenGL ES版本2,您的地图将不会出现。我们建议在AndroidManifest..xml增加<manifest>的子元素<user-feature>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
本通知要求外部服务。特别是,它具有防止谷歌运用商城显示不支持OpenGL ES 2版本运用程序。
Add a Map
当您添加参考到谷歌GPS服务SDK,添加您的钥匙和定制你的Android清单,你可以尝试添加一个地图应用程序。
为了测试你的应用程序是正确的配置是添加一个简单的地图的最简单的方法。你将不得不在两个文件main.xml和mainactivity.java改变。请注意,下面的代码在一个应用中针对Android API 12或更高版本设置测试是唯一有用的代码,这不应该用在生产中的应用。如何添加更加健壮的代码出现在本指南中的示例代码。
在main.xml,添加下面的片段。
<?xml version="1.0" encoding="utf-8"?> <fragmentxmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.MapFragment"/>
在mainactivity.java,添加以下代码
package com.example.mapdemo; import android.app.Activity; import android.os.Bundle; publicclassMainActivityextendsActivity{ @Override protectedvoid onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
编译和运行你的应用程序。你应该看到一个地图。如果你不看地图,确认你已经完成了所有本文档前面出现的步骤。

本文档提供了详细的步骤说明,指导如何在Android应用程序中集成谷歌地图APIv2,包括下载SDK、获取API密钥、配置AndroidManifest.xml文件以及添加地图组件。

1884

被折叠的 条评论
为什么被折叠?



