GoogleMap / Key Problem

  • Antworten:24
  • Bentwortet
Stefan S.
  • Forum-Beiträge: 560

15.08.2011, 10:20:52 via Website

Ich mal wieder mit meinem Liebslingsproblem...

Ich stehe mal wieder vor dem Berg. Ich muss mir ja einen Key generieren welche ich registriere, damit ich GoogleMaps brauchen kann.
Kann mir jemand kurz erklären wie ich das machen muss? Geht das ev. auch innerhalb Eclipse? Dort musste ich ja auch mal einen Key machen um meine App zu signieren...

Meine Idee wäre es, eine Liste von Adressen in dieser Activity darzustellen. (heisst glaubs Reverse-Geochoacing oder so). Ist es auch möglich, diese Punkte mit einem Listener zu versehen, damit man auf einen bestimmten Eintrag klicken kann und dieser dann an eine weitere Activity übergeben wird?

Danke im Voraus

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

15.08.2011, 13:07:46 via Website

Ich hoffe dir helfen folgende Verweise weiter. Besser könnte ich es auch nicht erklärern ;-)

http://code.google.com/intl/de-DE/android/add-ons/google-apis/mapkey.html

Das Aufschlüsseln eines Address-Strings in Koordinaten habe ich über einen HTTP-Request gemacht:

http://code.google.com/intl/de-DE/apis/maps/documentation/geocoding/

Die GeoPoints mit resultierenden Koordinaten kannst du ganz normal als OverlayItems auf dein MapOverlay legen und die onTap()-Funktion liefert dir das geklickte Item.

Antworten
Stefan S.
  • Forum-Beiträge: 560

15.08.2011, 13:15:55 via Website

Danke mal für die Links.
Den für den mapkey kannte ich schon. Was ich nicht verstehe ist der Key selber. Kann ich meinen Key für die verschlüsselung der Apps brauchen um den MD5 zu generieren?

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

15.08.2011, 13:32:24 via Website

Ja. Aber zum Entwickeln ist der Debug-Keystore wohl besser geeignet. Aber es sind ja beide Möglichkeiten beschrieben.

Antworten
Stefan S.
  • Forum-Beiträge: 560

15.08.2011, 13:39:18 via Website

Ok. Danke.
Ich werde mal ein bisschen rumprobieren. Dieses Ding macht mir echt ein bisschen Kopfschmerzen... :wacko:
Ich bin ja sonst nicht so begriffsstutzig aber hier... ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

15.08.2011, 13:48:03 via Website

Ich war da anfangs auch sehr verwirrt mit den ganzen Keys... aber was ich mir gemerkt habe, ist:
Es gibt jeweils einen Key für den Debug-Modus und einen zum Signieren der Apps und der Maps-API-Key kann auch jeweils mit dem MD5-Fingerprint beider Zertifikate generiert werden. Und die Generierung selbst mit dem Keytool ist ja nicht schwer, wenn man nach der Beschreibung vorgeht.

Antworten
Stefan S.
  • Forum-Beiträge: 560

15.08.2011, 13:49:18 via Website

Und ohne zu lesen und so:
wie kann man den Debug-Key erstellen/verwenden?

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

15.08.2011, 14:27:41 via Website

haha, was heisst hier ohne zu lesen? :D

Antworten
Stefan S.
  • Forum-Beiträge: 560

15.08.2011, 14:29:23 via Website

Na den langen Text von Google :grin:
Ev. gibt es ja ein Nachschlagewerk (mit Bildern? :vader:)

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

15.08.2011, 15:12:49 via Website

Im Abschnitt "Getting the MD5 Fingerprint of the SDK Debug Certificate" steht doch genau wie es funktioniert:
http://code.google.com/intl/de-DE/android/add-ons/google-apis/mapkey.html#getdebugfingerprint
Wenn du nicht weißt, wo sich dein Keystore befindet, kannst du über Eclipse den Pfad rausfinden (Windows > Prefs > Android > Build).
Den setzt du dann einfach noch in den Befehl ein (bei <path_to_debug_keystore>) und gibst das in die Konsole ein:
1keytool -list -alias androiddebugkey \ -keystore <path_to_debug_keystore>.keystore \ -storepass android -keypass android

Antworten
Stefan S.
  • Forum-Beiträge: 560

15.08.2011, 15:39:43 via Website

Supi. Vielen Dank!

Antworten
Stefan S.
  • Forum-Beiträge: 560

16.08.2011, 07:34:26 via Website

Wollte mich nochmals bedanken. Hat beängstigend einfach geklappt mit deinen Tipps!!

Nur noch eine kleine Zusatzfrage.
Meine neue Activity ist ja nun vom Typ MapActivity. Ich kann diese aber nicht über
Intent = new Intent(context, NewClass.class) instanzieren.

Geht dies soch nicht?

Antworten
Florian B.
  • Forum-Beiträge: 284

16.08.2011, 08:35:08 via Website

Doch, das sollte ganz normal funktionieren. Was passiert denn?

Antworten
Stefan S.
  • Forum-Beiträge: 560

16.08.2011, 08:40:40 via Website

Ich erhalte die Fehlermeldung
unable to resolve superclass

Ich habe auch im Manifest den <uses-library android:name="com.google.android.maps" /> eingetragen.

Antworten
Florian B.
  • Forum-Beiträge: 284

16.08.2011, 09:03:44 via Website

Hast du das richtige Android SDK ausgewählt, also das mit den Google APIs? Hast du die Activity im Manifest registriert?

Antworten
Stefan S.
  • Forum-Beiträge: 560

16.08.2011, 09:35:03 via Website

Ja, ich hab das Google-API genommen und die Activity ist auch im Manifest vorhanden.

Antworten
Florian B.
  • Forum-Beiträge: 284

16.08.2011, 09:37:22 via Website

Zeig doch mal den Code, vielleicht hast du was übersehen.

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

16.08.2011, 09:40:14 via Website

Stefan Schelling
Ich habe auch im Manifest den <uses-library android:name="com.google.android.maps" /> eingetragen.

in das <application> Tag?

Antworten
Stefan S.
  • Forum-Beiträge: 560

16.08.2011, 09:46:20 via Website

Nein das hatte ich nicht im Application-Tag. Seid ich dies dort habe erhalte ich folgende Meldun im LogCat
08-16 07:44:59.479: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH.mail in package com.android.contacts
08-16 07:44:59.489: WARN/PackageManager(61): Unknown permission android.permission.ADD_SYSTEM_SERVICE in package com.android.phone
08-16 07:44:59.489: WARN/PackageManager(61): Not granting permission android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS to package com.android.browser (protectionLevel=2 flags=0x9be45)
08-16 07:44:59.499: WARN/PackageManager(61): Not granting permission android.permission.MODIFY_PHONE_STATE to package autocall.steffsworld.ch (protectionLevel=3 flags=0xbe46)
08-16 07:44:59.499: WARN/PackageManager(61): Unknown permission com.google.android.gm.permission.WRITE_GMAIL in package com.android.settings
08-16 07:44:59.499: WARN/PackageManager(61): Unknown permission com.google.android.gm.permission.READ_GMAIL in package com.android.settings
08-16 07:44:59.510: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH in package com.android.settings
08-16 07:44:59.519: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH in package com.android.providers.contacts
08-16 07:44:59.519: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH.cp in package com.android.providers.contacts
08-16 07:44:59.529: WARN/PackageManager(61): Not granting permission android.permission.MODIFY_PHONE_STATE to package com.marakana (protectionLevel=3 flags=0xbe46)
08-16 07:44:59.529: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.ACCESS_GOOGLE_PASSWORD in package com.android.development
08-16 07:44:59.529: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH in package com.android.development
08-16 07:44:59.529: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH.ALL_SERVICES in package com.android.development
08-16 07:44:59.529: WARN/PackageManager(61): Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH.YouTubeUser in package com.android.development
08-16 07:44:59.539: WARN/PackageManager(61): Unknown permission android.permission.READ_OWNER_DATA in package com.android.email
08-16 07:44:59.539: WARN/PackageManager(61): Not granting permission android.permission.DEVICE_POWER to package com.android.deskclock (protectionLevel=2 flags=0x8be45)

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

16.08.2011, 09:54:48 via Website

Das hat zwar jetzt nichts mehr mit dem Ausgangsproblem zu tun, aber es sieht wohl so aus, als ob da was mit den Permissions nicht stimmt?
Was steht denn diesbezüglich in deinem Manifest?

Antworten
Stefan S.
  • Forum-Beiträge: 560

16.08.2011, 10:02:44 via Website

Mein Manifest
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="mymap.steffsworld.ch"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <uses-sdk android:minSdkVersion="7" />
7
8 <uses-permission android:name="android.permission.INTERNET" />
9
10 <application android:icon="@drawable/icon" android:label="@string/app_name">
11
12 <activity android:name=".MyMapActivity"
13 android:label="@string/app_name">
14 <intent-filter>
15 <action android:name="android.intent.action.MAIN" />
16 <category android:name="android.intent.category.LAUNCHER" />
17 </intent-filter>
18 </activity>
19 <uses-library android:name="com.google.android.maps" />
20 <activity android:name="MyTestMap"></activity>
21 </application>
22</manifest>

Meine Hauptklasse
1public class MyMapActivity extends Activity {
2 /** Called when the activity is first created. */
3 @Override
4 public void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.main);
7
8 Button btn = (Button)findViewById(R.id.btnGo);
9 btn.setOnClickListener(new OnClickListener() {
10
11 @Override
12 public void onClick(View v) {
13 // TODO Auto-generated method stub
14
15 try
16 {
17 Intent i = new Intent(MyMapActivity.this, MyTestMap.class);
18 startActivity(i);
19 }
20 catch(Exception ex)
21 {
22 String s = ex.getMessage();
23 }
24
25 }
26 });
27 }
28}

Die MapActivity
1public class MyTestMap extends MapActivity {
2
3 @Override
4 public void onCreate(Bundle savedInstanceState)
5 {
6 super.onCreate(savedInstanceState);
7 setContentView(R.layout.mapmain);
8 }
9
10 @Override
11 protected boolean isRouteDisplayed() {
12 // TODO Auto-generated method stub
13 return false;
14 }
15
16}

Antworten
Gelöschter Account
  • Forum-Beiträge: 80

16.08.2011, 10:31:15 via Website

Stürzt die App denn ab oder was passiert? In dem Teil der LogCat Ausgaben ist kein Fehler zu sehen, nur Warnungen, die müssen ja nicht mal von deiner App kommen. Auf den ersten Blick sieht der Code gut aus.

Antworten
Stefan S.
  • Forum-Beiträge: 560

16.08.2011, 10:32:38 via Website

Ich erhalte noch folgende Meldung
08-16 08:31:36.559: ERROR/PackageManager(62): Package mymap.steffsworld.ch requires unavailable shared library com.google.android.maps; failing!

Antworten
Stefan S.
  • Forum-Beiträge: 560

16.08.2011, 10:43:41 via Website

Ich könnte mich...

Das Problem lag an meiner AVD. Dort verwendete ich die Android statt Google-API... :wink:
Sorry für die Aufregung... und danke Euch!

Antworten
Florian B.
  • Forum-Beiträge: 284

16.08.2011, 11:39:37 via Website

Hehe, passiert. Kein Problem, dafür ist doch ein Forum da.

Antworten