2011-12-30 9 views
0

私はこのリンクhttp://eagle.phys.utk.edu/guidry/android/apiKey.htmlをフォローして、証明書のMD5指紋を生成しています。Get Maps API Key:Android

私も次のスレッドを見てきました:

Google maps error when trying to get my API Key for android

How to find the MD5 fingerprint of my Android App

私はWindows XPのOS【選択のdebug.keystoreはCに位置して使用しています:\ DocumentsとSettings \ Admin.android \ debug.keystore。

ですが、cmdプロンプトで応答ネットワークパスが見つかりません。

  1. MD5ダイジェストをどのように生成できますか教えてください。

  2. そしてまた、私はデバッグキー の違いが何であるかを知っていると

    キーを解放したいと思います?これらの2つの異なるキーですか?はいの場合は どのように 私はそれらを生成することができますか?

  3. 同じデバッグを使用して キーを別のマシンで使用できるという方法を採用していますか?

+0

Uが解かなかった助けるかもしれないあなたのデバッグ署名を取得?.. –

+0

@Padma Kumar:はい、私はmd5証明書を生成しましたが、まだデバッグキーとリリースキーの間に疑問があります。 – Shruti

+0

これを参照してください:http://blogprogramistyandroid.blogspot.com/2011/04/converting-release-keys-to -debug.html –

答えて

1
  • お使いのシステムにdebug.keystoreを探します。 WindowsのUSER_HOME\Local Settings\Application Data\.androidフォルダにあります。

  • keytoolユーティリティを使用して、証明書フィンガープリント(MD5)を生成します。デフォルトのJDKインストールに付属するkeytoolユーティリティ。

    C:>のkeytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepassアンドロイド-keypassアンドロイド

あなたのデバッグ証明書に基づいて、一時的なMaps APIキーを取得しますが、前にすることができますあなたのアプリケーションを公開するには、あなたのリリース証明書に基づいて新しいキーに登録し、それに応じてMapViewの参照を更新する必要があります

アプリケーションがサービスにアクセスする場合やサードパーティのライブラリを使用する場合は、あなたの秘密鍵に基づく鍵を使用する必要があります。たとえば、アプリケーションでGoogle Maps外部ライブラリの一部であるMapViewクラスを使用する場合、アプリケーションをGoogle Mapsサービスに登録してMaps APIキーを取得する必要があります。 Maps APIキーを取得する方法については、「Maps APIキーを取得する」を参照してください。

refer this:

+1

C:> keytool.exe -list ...... –

+1

このコメントは私を助けたので、私は答えを受け入れた – Shruti

1

$ 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ののfuncがまた

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; 
     } 
+0

ありがとう@WareNinja:plzは私の第3の質問に答えます – Shruti

+0

確かに歓迎します。残念ながら私は3番目の質問に明確な答えがありません、私が知る限り試してみましょう。マシンごとにデバッグキーの変更のみ、リリースされたキーは署名されたアプリケーションと同じです。だから私はマシンごとにデバッグキーを更新し、それに応じてisDebugBuildをチェックするのです。 – guleryuz