6

Ich schreibe ein Android-Bibliotheksprojekt. Ich versuche, mich bei Google map anzumelden und den API-Schlüssel zu erhalten. Ich benutze meine certificate information, was bedeutet, dass ich einen SHA1 Fingerabdruck aus meiner Bibliothek nehme und den API-Schlüssel erhalte.Android-Bibliotheksprojekt kann nicht in Google Map registriert werden

Das Problem ist, dass ich diese Informationen in der Host-Anwendung Manifest schreiben müssen:

<meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="API_KEY" /> 

Diese API-Schlüssel meiner Bibliothek Anzügen und nicht die Host-Anwendung. Wenn ich mein Bibliotheksprojekt wie eine separate Anwendung ausführen, funktioniert es ordnungsgemäß

Hat jemand eine Idee, wie kann ich meine api_key als Bibliotheksprojekt verwenden?

Dank

Antwort

5

Der API-Schlüssel zu dem Paketnamen der Anwendung gebunden ist und das Zertifikat verwendet, es zu unterzeichnen (Sie können den gleichen Schlüssel für mehrere Anwendungen verwenden, natürlich, aber man muss jedes Register einzeln in die Developer Console).

Soweit ich weiß, gibt es auch keine Möglichkeit, den Schlüssel in Runtime zur Verfügung zu stellen. Während die jetzt veraltete V1-API eine constructor supplying the key zur Verfügung stellte, tut dies die new API nicht.

Wenn Sie also ein "ready-to-use" -Bibliotheksprojekt mit einem mitgelieferten API-Schlüssel (deins) für jede Anwendung verteilen möchten, sieht das so aus, als wäre das nicht möglich. Sie müssen Ihren Nutzern mitteilen, dass sie einen Schlüssel erhalten sollen, und dann den Eintrag "com.google.android.maps.v2.API_KEY" in ihre Datei AndroidManifest.xml einfügen.

+0

Also was wäre ein gutes Ergebnis? Beim Initialisieren des Pakets nach dem API-Schlüssel des Hosts fragen? –

+0

@AdamMatan Ich glaube nicht, dass das möglich ist. Beantwortete meine Antwort ein wenig, um das klarzustellen. – matiash

+0

@matiash, wenn die Hostanwendung in der Entwicklergruppe registriert wird und den Eintrag "com.google.android.maps.v2.API_KEY" in ihre Datei AndroidManifest.xml aufnimmt. unsere Bibliothek wird es schaffen, Google Maps zu verwenden? – user3616237

1

1.-Legen Sie die Aktivität, die die MapView/FragmentMap implementiert, in Ihre Bibliothek. Da sich die Aktivität in einem Paket befinden würde, das in der Konsole des Entwicklers registriert ist, sollte es funktionieren. Sie müssen die Manifeste zusammenführen.

2.-Benennen Sie das Hauptpaket der endgültigen App mit dem gleichen Namen des Hauptpakets der Bibliothek. Da der Paketname als Signatur für den API-Schlüssel verwendet wird, funktioniert er möglicherweise. Sie müssen Manifeste zusammenführen.

Verwandte Themen