谷歌地图 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 密钥的主要内容,如果未能解决你的问题,请参考以下文章

Android:Google Map v2 未显示发布 apk 的地图

刷新/重新加载地图:谷歌地图 API V2

Android 谷歌地图 API v2 中心缩放

从谷歌地图 API 的 v2 升级到 v3,建议

插入 API 密钥后未加载 Android 谷歌地图

谷歌地图 api 密钥有效,但道路 apikey 无效