申请google android map api key

简介:

网上找到的老外的一篇申请android map api key的文章。原文连接在这里

 文章内容如下:

The Maps API Key


 

The MapView class in the Maps external library lets you integrate Google Maps into your application. BecauseMapView gives you access to Google Maps data, you must register with the Google Maps service before your implementation of MapView will be able to obtain map data.

 

Obtaining and Using a Maps API Key

Registering and using a Maps API Key is free and has two parts:

  1. First you register the MD5 fingerprint of the certificate that will be used to sign your application. The Maps registration service then provides a Maps API Key that is associated with your application's signer certificate.

  2. Then you add a reference to this Maps API Key in each MapView. You can use the same Maps API Key for any MapView in any Android application, provided that the application is signed with the certificate whose fingerprint you registered with the service.

We now outline how to implement these two steps; for more details, see Obtaining a Maps API Key.


To keep things simple we shall register using the debug certificate associated with our development machine to obtain a temporary Maps API key. This is adequate for demonstration and development. However, when you publish an app (e.g., deployment through the Android Market) you must digitally sign it and (if you employ Google Maps) before you publish your application you must register for a new Key based on your release certificate, and update the references in your MapViews to this new key.

 

Getting the MD5 Fingerprint of the Debug Certificate

To generate an MD5 fingerprint of the SDK debug certificate, we must first locate the debug keystore. This will depend on the platform in use. For example, some standard locations are

  • Windows Vista: C:\Users\ \.android\debug.keystore

  • Windows XP: C:\Documents and Settings\ \.android\debug.keystore

  • Linux and Mac OS X: ~/.android/debug.keystore

If in doubt, you can locate the debug keystore by using Eclipse and choosing Window > Preferences > Android > Build.

Once you have located the keystore, the following command issued at a shell prompt will return the MD5 fingerprint of the debug certificate:


$ keytool -list -alias androiddebugkey -keystore <path_to_debug_keystore>.keystore -storepass android -keypass android

For example, on one of my Linux systems (named M33) I obtained


[guidry@m33 ~]$ keytool -list -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android
androiddebugkey, Jan 26, 2011, PrivateKeyEntry,
Certificate fingerprint (MD5): 3C:8D:BD:C1:7F:40:10:82:C9:6B:B1:E2:68:0C:30:13
[guidry@m33 ~]$

Copy the MD5 fingerprint, as we shall use it shortly to register with the Map service. Now use a browser to go to the sign-up page. To register for a Maps API Key,

  1. You must have a (free) Google account to use the Maps service. If you don't have one already, use the link on the page to sign up for one.

  2. Agree to the terms of service by clicking the checkbox.

  3. Paste into the appropriate form field the MD5 certificate fingerprint that you generated above for the certificate that you are registering.

  4. Click "Generate API Key".

The server will return a page similar to the following figure containing your key string.



Keep the key string in a safe place because you will need it for any mapping application that you write. In the next section we will describe how to use this key.

 

Using the Maps API Key

You must add the Maps API key obtained above to any MapView objects in your application, so that the Maps server will allow them to download map tiles. For Mapviews declared in XML files, the key is added as the value of a special android:apiKey attribute. For example, the Maps API key returned when the MD5 key for M33 obtained above was registered is


07WVUg-srWUZbNUe1L0F3PYs0gcOKG-UqXR-DZQ

Thus a MapView on the machine M33 can be registered to receive map data in an application running under the debug certificate by inserting


<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="07WVUg-srWUZbNUe1L0F3PYs0gcOKG-UqXR-DZQ" />

in the XML layout file for the MapView.


This maps API key is valid only under the debug certificate on a specific machine (M33 in this example), for as long as that debug certificate is valid.
  • If I transfer the application to another machine, I will have to obtain a map key for that machine in the same way as described above and change the android:apiKeyattribute accordingly.

  • Even on a given machine, the debug certificate expires after a year and you must delete it to force acquisition of a new one (see the General heading under Eclipse Tips). If you acquire a new debug certificate, your mapping applications will not be able to obtain data when deployed using the debug certificate until you obtain a new maps API key.

  • Also, each MapView within an application must have its own android:apiKeyspecification (but you can use the same API key for all).
The reason that all of this seems more involved than it needs to be is basically that Google Maps are compatible with the Android API, but they are licensed separately from Android.

If you instantiate MapView objects directly from code rather than laying out with XML, the Maps API Key string is passed as a parameter in the constructor. For example, assuming the same API key as above,


myMapView = new MapView(this, "07WVUg-srWUZbNUe1L0F3PYs0gcOKG-UqXR-DZQ");

would register myMapView to receive mapping data.

 

Modifications of the Manifest File

Finally, for your application to use the Maps API key you must declare in the AndroidManifest.xml file that it requires permission to access the internet and that it uses the Google maps library. The first requires an element


<uses-permission android:name="android.permission.INTERNET" />

while the second requires an entry


<uses-library android:name="com.google.android.maps" />

that is a child node of the <application> element. For example,


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lightcone.mapoverlaydemo"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
<activity android:name=".MapOverlayDemo"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ShowTheMap" android:label="Lat/Long Location"> </activity>
<uses-library android:name="com.google.android.maps" />
</application>
<uses-sdk android:minSdkVersion="3" />
 

</manifest>  

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!












本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2011/09/16/2178227.html ,如需转载请自行联系原作者




相关文章
|
6月前
|
编译器 API Android开发
Android经典实战之Kotlin Multiplatform 中,如何处理不同平台的 API 调用
本文介绍Kotlin Multiplatform (KMP) 中使用 `expect` 和 `actual` 关键字处理多平台API调用的方法。通过共通代码集定义预期API,各平台提供具体实现,编译器确保正确匹配,支持依赖注入、枚举类处理等,实现跨平台代码重用与原生性能。附带示例展示如何定义跨平台函数与类。
198 0
|
3月前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
73 1
|
8月前
|
API Android开发 开发者
`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView
【6月更文挑战第26天】`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView。它提供高效的数据视图复用,优化的布局管理,支持多种布局(如线性、网格),并解耦数据、适配器和视图。RecyclerView的灵活性、性能(如局部刷新和动画支持)和扩展性使其成为现代Android开发的首选,特别是在处理大规模数据集时。
104 2
|
8月前
|
存储 Java API
探讨Java中交换Map的Key和Value值的技术
探讨Java中交换Map的Key和Value值的技术
83 2
|
8月前
|
存储 缓存 Java
Java交换map的key和value值
在Java中,直接交换`Map`的key和value是不允许的,因为key是唯一的且不可变。不过,可以通过创建新`Map`实现交换:将原`Map`的value作为新key,key作为新value。注意,如果原`Map`有重复value或null,需额外处理。以下是一个代码示例,展示了如何在value唯一且非null的情况下交换`Map`的key和value。对于重复value或null值的情况,可以使用`List`存储多个key或忽略null值。在实际应用中,`Map`常用于缓存、配置管理、数据库结果映射等多种场景。
106 1
|
8月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之Secret Key(AccessKey Secret)和 API KEY(AccessKey ID)该如何申请
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
108 0
|
9月前
|
Java Shell Android开发
android 权限申请
android 权限申请
152 5
|
8月前
|
Java Linux API
微信API:探究Android平台下Hook技术的比较与应用场景分析
微信API:探究Android平台下Hook技术的比较与应用场景分析
|
9月前
|
SQL API Android开发
Android API:Activity.managedQuery()
Android API:Activity.managedQuery()
62 2
|
8月前
|
Java API Maven
第三方支付API支付宝支付申请流程 支付宝新老版本
第三方支付API支付宝支付申请流程 支付宝新老版本
173 0

热门文章

最新文章

推荐镜像

更多