获取地图API密钥:Android



我遵循此链接http://eagle.phys.utk.edu/guidry/android/apiKey.html生成证书的MD5指纹。

我也看到了以下线程:

谷歌地图错误时,试图获得我的API密钥为android

如何找到我的Android应用的MD5指纹

我使用的是Windows xp操作系统。Admin.androiddebug.keystore.

但在CMD提示符下给出响应网络路径未找到

  1. 请指导我如何生成MD5摘要。

  2. 我也想知道调试键的区别是什么和发布

    键? ?这两把钥匙是不同的吗?如果是,那么如何我能生成它们吗?

  3. 是否有办法采用我们可以使用相同的调试和发布

  • 定位调试。系统上的密钥存储库。通常在windows的USER_HOMELocal SettingsApplication Data.android文件夹中

  • 使用keytool工具生成证书指纹(MD5)。默认JDK安装自带的keytool工具。

    C:>keytool -list -alias androiddebugkey -keystore .androiddebug。

你可以根据你的调试证书获得一个临时的Maps API Key,但是在你发布应用程序之前,你必须根据你的发布证书注册一个新的Key,并相应地更新MapViews中的引用

如果您的应用程序访问服务或使用第三方库,要求您使用基于您的私钥的密钥,则可能还需要获取其他发布密钥。例如,如果应用程序使用MapView类(它是Google Maps外部库的一部分),则需要向Google Maps服务注册应用程序并获得Maps API密钥。有关获取Maps API密钥的信息,请参见获取Maps API密钥。

参考:

获得如下所述的调试签名

$ keytool -list -keystore ~/.android/debug.keystore
...
Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98

或者最好使用你从sigs[i].hashCode()得到的那个
那么这个util函数也可以帮助

static final int DEBUG_SIGNATURE_HASH = 695334320;// value shpuld be the one you get above
    public static boolean isDebugBuild(Context context) {
            boolean _isDebugBuild = false;
            try {
                Signature [] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
                Log.d(TAG, "DEBUG_SIGNATURE_HASH->"+DEBUG_SIGNATURE_HASH);
                for (int i = 0; i < sigs.length; i++) {
                    Log.d(TAG, i+"->"+sigs[i].hashCode());
                    if ( sigs[i].hashCode() == DEBUG_SIGNATURE_HASH ) {
                        Log.d(TAG, "This is a debug build!");
                        _isDebugBuild = true;
                        break;
                    }
                }
            } catch (NameNotFoundException e) {
                e.printStackTrace();
            }      
            return _isDebugBuild;
        }

最新更新