谷歌地图 API v2 密钥
Posted
技术标签:
【中文标题】谷歌地图 API v2 密钥【英文标题】:Google Map API v2 Key 【发布时间】:2014-04-23 11:34:41 【问题描述】:启用“Google Maps android v2”后是否需要创建 Map API Key ?? 因为我尝试了很多,但我总是无法运行谷歌地图的应用程序。请告诉我是否有人尝试过这个。谢谢。
清单.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.anshul"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="com.anshul.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.anshul.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.anshul.MapActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="------removed-------" />
</application>
</manifest>
【问题讨论】:
您有什么错误或异常? Here 是很好的手册如何安装谷歌地图 你能发布你的应用清单代码吗? 【参考方案1】:是的,API 密钥是强制性的,否则 Google 不会授权您的应用使用地图。
https://developers.google.com/maps/documentation/android/start#get_an_android_certificate_and_the_google_maps_api_key
要获取 API 密钥,请转到 Google API 控制台: https://code.google.com/apis/console/
确保选中“Google Maps Android API v2”,然后转到 API Access 并点击 “创建新的 Android 密钥....”
这允许您输入您的包名称,即“com.example.whatever”和您的 SHA-1 指纹(可以从 eclipse 或使用 keytool 获取)。所有信息都可以在上面的链接中找到。
祝你好运
【讨论】:
我很久以前就做过了。而且我尝试了很多代码,但对我来说没有任何价值。 听起来您的 SHA-1 有问题。您可以将多个 SHA-1 添加到您的 API 密钥。尝试打开 eclipse 首选项,然后转到 Android -> Build。复制您正在使用的调试 SHA1 指纹。现在您应该编辑您允许的应用程序并粘贴一大串 SHA1,如下所示:45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2 :56:26:A0:E0;com.example 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:01: 11;com.example 我应该创建一个新的 SH-1 吗? 当然,当您运行通过 USB 电缆连接的应用程序时,您通常会使用一个调试程序。加上另一个在您发布应用程序时签名和使用的内容。将它们都添加到允许的应用程序列表中。请记住使用格式 SHA1;packagname 您能否简要告诉我应该将调试的 SHA1 粘贴到哪里??【参考方案2】:是的,当然必须创建 Google Map Api 密钥,没有它,你怎么能成功加载地图。您必须需要将该密钥提供给 Android Manifest 文件的 map api 密钥属性。它必须是必需的。
【讨论】:
普拉提克 我知道。我要求在启用“Google Maps Android v2”之前是否可以创建 api 密钥 是的,您可以随时创建。你只需要 SHA-1 和你的包名,去 api access 并按照那里的步骤操作。之后,您还可以启用谷歌地图 android v2 服务。 我很久以前就创建了它,但它没有工作。我已经多次更改我的代码但没有好的结果:/ 但是您必须创建 2 个密钥,一个用于调试,一个用于使其生效。我的意思是当你在你的设备上运行和测试它时,使用调试密钥,当你完成应用程序并在那时创建 apk 时使用实时密钥。 我都创建了。但我只能在 prefrences>android>build Debug 键中看到一个。我怎样才能找到cutoms?【参考方案3】:这只是因为错误的 SHA,因此请使用以下代码获取项目的正确 SHA。
try
PackageInfo info = getPackageManager().getPackageInfo(
"Your PAckage here",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures)
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
// // System.out.println("KEY HASH.........."+Base64.encodeToString(md.digest(), Base64.DEFAULT));
catch (NameNotFoundException e)
System.out.println("name not found...."+e);
catch (NoSuchAlgorithmException e)
System.out.println("NoSuchAlgorithmException...."+e);
【讨论】:
以上是关于谷歌地图 API v2 密钥的主要内容,如果未能解决你的问题,请参考以下文章