<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=79.240.26.138</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=79.240.26.138"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/79.240.26.138"/>
	<updated>2026-05-06T20:00:10Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20056</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20056"/>
		<updated>2013-10-11T15:43:24Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* MapView Activity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de //veraltet&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/intro&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
Mit der Google Maps API v2 verändern sich ein paar Dinge:&lt;br /&gt;
* Die API ist jetzt teil des Google Play services SDK &lt;br /&gt;
* Maps sind jetzt in der MapFragment class gekapselt, einer Erweiterung der Fragment class. Dadurch kann man Karten als Teil einer größeren Activity nutzen. Die Karte kann auch Teil eines größeren UIs sein.&lt;br /&gt;
* Als MapFragment Klasse kann man sie implementieren indem man die Standard Activity Klasse erweitert (statt der Erweiterung einer MapActivity in v1)&lt;br /&gt;
* Vektorbasierte Kacheln -&amp;gt; schneller, weniger Speicher&lt;br /&gt;
* Verbessertes Caching&lt;br /&gt;
* 3D Funktionalität. Mittels User Viewpoint sind Karten mit Perspektive möglich.&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs wählen&lt;br /&gt;
* darunter bei Libaries die google-play-services_lib hinzufügen&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Abwärtskompatibilität ===&lt;br /&gt;
Um die neue Google Maps V2 API auf älteren Geräten zu nutzen muß man 3 Dinge tun:&lt;br /&gt;
&lt;br /&gt;
* Im Layout ein SupportMapFragment statt ein MapFragment nutzen&lt;br /&gt;
* eine FragmentActivity statt einer Activity nutzen&lt;br /&gt;
* Den SupportFragmentManager statt des FragmentManagers in der FragmentActivity nutzen:&lt;br /&gt;
&lt;br /&gt;
activty_map_view.xml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment&lt;br /&gt;
  android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
  class=&amp;quot;com.google.android.gms.maps.SupportMapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
MapViewActivity.java&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.location;&lt;br /&gt;
&lt;br /&gt;
import com.google.android.gms.maps.GoogleMap;&lt;br /&gt;
import com.google.android.gms.maps.SupportMapFragment;&lt;br /&gt;
&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.support.v4.app.FragmentActivity;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class MapViewActivity extends FragmentActivity{&lt;br /&gt;
&lt;br /&gt;
	private SupportMapFragment mapFragment;&lt;br /&gt;
	private GoogleMap googleMap;&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle arg0) {&lt;br /&gt;
		super.onCreate(arg0);&lt;br /&gt;
		setContentView(R.layout.activity_map_view);&lt;br /&gt;
		&lt;br /&gt;
		mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);&lt;br /&gt;
		googleMap = mapFragment.getMap();&lt;br /&gt;
		googleMap.setMyLocationEnabled(true);&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20055</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20055"/>
		<updated>2013-10-11T15:20:00Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Abwärtskompatibilität */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs wählen&lt;br /&gt;
* darunter bei Libaries die google-play-services_lib hinzufügen&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Abwärtskompatibilität ===&lt;br /&gt;
Um die neue Google Maps V2 API auf älteren Geräten zu nutzen muß man 3 Dinge tun:&lt;br /&gt;
&lt;br /&gt;
* Im Layout ein SupportMapFragment statt ein MapFragment nutzen&lt;br /&gt;
* eine FragmentActivity statt einer Activity nutzen&lt;br /&gt;
* Den SupportFragmentManager statt des FragmentManagers in der FragmentActivity nutzen:&lt;br /&gt;
&lt;br /&gt;
activty_map_view.xml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment&lt;br /&gt;
  android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
  class=&amp;quot;com.google.android.gms.maps.SupportMapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
MapViewActivity.java&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.location;&lt;br /&gt;
&lt;br /&gt;
import com.google.android.gms.maps.GoogleMap;&lt;br /&gt;
import com.google.android.gms.maps.SupportMapFragment;&lt;br /&gt;
&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.support.v4.app.FragmentActivity;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class MapViewActivity extends FragmentActivity{&lt;br /&gt;
&lt;br /&gt;
	private SupportMapFragment mapFragment;&lt;br /&gt;
	private GoogleMap googleMap;&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle arg0) {&lt;br /&gt;
		super.onCreate(arg0);&lt;br /&gt;
		setContentView(R.layout.activity_map_view);&lt;br /&gt;
		&lt;br /&gt;
		mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);&lt;br /&gt;
		googleMap = mapFragment.getMap();&lt;br /&gt;
		googleMap.setMyLocationEnabled(true);&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20054</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20054"/>
		<updated>2013-10-11T15:19:39Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Ein MapFragment hinzufügen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs wählen&lt;br /&gt;
* darunter bei Libaries die google-play-services_lib hinzufügen&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Abwärtskompatibilität ===&lt;br /&gt;
Um die neue Google Maps V2 API auf älteren Geräten zu nutzen muß man 3 Dinge tun:&lt;br /&gt;
&lt;br /&gt;
* Im Layout ein SupportMapFragment statt ein MapFragment nutzen&lt;br /&gt;
* eine FragmentActivity statt einer Activity nutzen&lt;br /&gt;
* Den SupportFragmentManager statt des FragmentManagers in der FragmentActivity nutzen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
activty_map_view.xml&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment&lt;br /&gt;
  android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
  class=&amp;quot;com.google.android.gms.maps.SupportMapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
MapViewActivity.java&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.location;&lt;br /&gt;
&lt;br /&gt;
import com.google.android.gms.maps.GoogleMap;&lt;br /&gt;
import com.google.android.gms.maps.SupportMapFragment;&lt;br /&gt;
&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.support.v4.app.FragmentActivity;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class MapViewActivity extends FragmentActivity{&lt;br /&gt;
&lt;br /&gt;
	private SupportMapFragment mapFragment;&lt;br /&gt;
	private GoogleMap googleMap;&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle arg0) {&lt;br /&gt;
		super.onCreate(arg0);&lt;br /&gt;
		setContentView(R.layout.activity_map_view);&lt;br /&gt;
		&lt;br /&gt;
		mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);&lt;br /&gt;
		googleMap = mapFragment.getMap();&lt;br /&gt;
		googleMap.setMyLocationEnabled(true);&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20053</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20053"/>
		<updated>2013-10-11T15:13:54Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Projekt und API Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs wählen&lt;br /&gt;
* darunter bei Libaries die google-play-services_lib hinzufügen&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RelativeLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:paddingBottom=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    android:paddingLeft=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingRight=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingTop=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    tools:context=&amp;quot;.MapViewActivity&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    	&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RelativeLayout&amp;gt;&lt;br /&gt;
=== Abwärtskompatibilität ===&lt;br /&gt;
Um die neue Google Maps V2 API auf älteren Geräten zu nutzen muß man 3 Dinge tun:&lt;br /&gt;
&lt;br /&gt;
* Im Layout ein SupportMapFragment statt ein MapFragment nutzen&lt;br /&gt;
* eine FragmentActivity statt einer Activity nutzen&lt;br /&gt;
* Den SupportFragmentManager statt des FragmentManagers in der FragmentActivity nutzen:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20052</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20052"/>
		<updated>2013-10-11T15:13:41Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Projekt und API Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* darunter bei Libaries die google-play-services_lib hinzufügen&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RelativeLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:paddingBottom=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    android:paddingLeft=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingRight=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingTop=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    tools:context=&amp;quot;.MapViewActivity&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    	&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RelativeLayout&amp;gt;&lt;br /&gt;
=== Abwärtskompatibilität ===&lt;br /&gt;
Um die neue Google Maps V2 API auf älteren Geräten zu nutzen muß man 3 Dinge tun:&lt;br /&gt;
&lt;br /&gt;
* Im Layout ein SupportMapFragment statt ein MapFragment nutzen&lt;br /&gt;
* eine FragmentActivity statt einer Activity nutzen&lt;br /&gt;
* Den SupportFragmentManager statt des FragmentManagers in der FragmentActivity nutzen:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20051</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20051"/>
		<updated>2013-10-11T15:12:56Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Voraussetzungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RelativeLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:paddingBottom=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    android:paddingLeft=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingRight=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingTop=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    tools:context=&amp;quot;.MapViewActivity&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    	&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RelativeLayout&amp;gt;&lt;br /&gt;
=== Abwärtskompatibilität ===&lt;br /&gt;
Um die neue Google Maps V2 API auf älteren Geräten zu nutzen muß man 3 Dinge tun:&lt;br /&gt;
&lt;br /&gt;
* Im Layout ein SupportMapFragment statt ein MapFragment nutzen&lt;br /&gt;
* eine FragmentActivity statt einer Activity nutzen&lt;br /&gt;
* Den SupportFragmentManager statt des FragmentManagers in der FragmentActivity nutzen:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20050</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20050"/>
		<updated>2013-10-11T15:12:36Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Ein MapFragment hinzufügen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RelativeLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:paddingBottom=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    android:paddingLeft=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingRight=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingTop=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    tools:context=&amp;quot;.MapViewActivity&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    	&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RelativeLayout&amp;gt;&lt;br /&gt;
=== Abwärtskompatibilität ===&lt;br /&gt;
Um die neue Google Maps V2 API auf älteren Geräten zu nutzen muß man 3 Dinge tun:&lt;br /&gt;
&lt;br /&gt;
* Im Layout ein SupportMapFragment statt ein MapFragment nutzen&lt;br /&gt;
* eine FragmentActivity statt einer Activity nutzen&lt;br /&gt;
* Den SupportFragmentManager statt des FragmentManagers in der FragmentActivity nutzen:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20049</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20049"/>
		<updated>2013-10-11T12:16:43Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Ein MapFragment hinzufügen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment zum Standard Layout hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RelativeLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:paddingBottom=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    android:paddingLeft=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingRight=&amp;quot;@dimen/activity_horizontal_margin&amp;quot;&lt;br /&gt;
    android:paddingTop=&amp;quot;@dimen/activity_vertical_margin&amp;quot;&lt;br /&gt;
    tools:context=&amp;quot;.MapViewActivity&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    	&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RelativeLayout&amp;gt;&lt;br /&gt;
Jetzt kann man schon eine Karte in der Activity sehen. Es ist aber keine Interaktion im Code möglich. Deshalb verbinden wir jetzt das Fragment mit der Activity&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20048</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20048"/>
		<updated>2013-10-11T11:31:31Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Layout File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein MapFragment hinzufügen ===&lt;br /&gt;
Wir fügen ein Map Fragment hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20047</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20047"/>
		<updated>2013-10-11T11:30:52Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei - Permissions und Key registrieren ===&lt;br /&gt;
Im Beispiel  sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)&lt;br /&gt;
&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layout File ===&lt;br /&gt;
Wir fügen ein Map Fragment hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20046</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20046"/>
		<updated>2013-10-11T11:28:25Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Manifest Datei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei ===&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layout File ===&lt;br /&gt;
Wir fügen ein Map Fragment hinzu &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hinweis:&amp;#039;&amp;#039;&amp;#039; Fragments gehen erst ab API11 - Honeycomb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FrameLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
	android:id=&amp;quot;@+id/root&amp;quot;&lt;br /&gt;
	android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
	android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fragment android:id=&amp;quot;@+id/map&amp;quot;&lt;br /&gt;
		  android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
		  android:name=&amp;quot;com.google.android.gms.maps.MapFragment&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/FrameLayout&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Activity Klasse ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20045</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20045"/>
		<updated>2013-10-11T11:24:49Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Link  auf Google Maps als Content Provider */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Possible geo uris:&lt;br /&gt;
// geo:lat,long&lt;br /&gt;
// geo:lat,long?z=zoom&lt;br /&gt;
// geo:0,0?q=AddressOrPlace&lt;br /&gt;
double latitude = 48.3895;&lt;br /&gt;
double longitude = 9.1869;&lt;br /&gt;
int zoom = 13;&lt;br /&gt;
String uriBegin = &amp;quot;geo:&amp;quot; + latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String query = latitude + &amp;quot;,&amp;quot; + longitude;&lt;br /&gt;
String encodedQuery = Uri.encode(query);&lt;br /&gt;
String uriString = uriBegin + &amp;quot;?q=&amp;quot; + encodedQuery + &amp;quot;&amp;amp;z=&amp;quot; + zoom;&lt;br /&gt;
Uri uri = Uri.parse(uriString);&lt;br /&gt;
i = new Intent(android.content.Intent.ACTION_VIEW, uri);&lt;br /&gt;
showActivity(i);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei ===&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activity Klasse&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20044</id>
		<title>Android - Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20044"/>
		<updated>2013-10-11T11:23:00Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* MapView Activity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier gibt es nur Code Schnipsel zum Kopieren ohne Erklärung&lt;br /&gt;
== Neue Activity ==&lt;br /&gt;
 MyNameActivity.java // Class&lt;br /&gt;
 activity_my_name.xml // Layout File&lt;br /&gt;
 AndroidManifest.xml&lt;br /&gt;
 strings.xml&lt;br /&gt;
&lt;br /&gt;
=== Activity Class ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.myappname;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
&lt;br /&gt;
public class MyNameActivity extends Activity{&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_my_name);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Buttons verdrahten ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
public class MyNameActivity extends Activity implements OnClickListener {&lt;br /&gt;
	Button b1,b2;&lt;br /&gt;
...&lt;br /&gt;
		b1 = (Button)findViewById(R.id.b1); &lt;br /&gt;
		b2 = (Button)findViewById(R.id.b2); &lt;br /&gt;
		b1.setOnClickListener(this); &lt;br /&gt;
		b2.setOnClickListener(this);&lt;br /&gt;
...&lt;br /&gt;
	@Override&lt;br /&gt;
	public void onClick(View v) {&lt;br /&gt;
		int id = v.getId();&lt;br /&gt;
		Intent i = null;&lt;br /&gt;
		switch (id){&lt;br /&gt;
		case R.id.b1:&lt;br /&gt;
			i = new Intent(this,OtherNameActivity.class);&lt;br /&gt;
			break;&lt;br /&gt;
		case R.id.b2:&lt;br /&gt;
			i = new Intent(&amp;quot;de.webmynet.appname.OTHERNAME&amp;quot;);//Variant with Manifest Activity Name&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		default:&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		startActivity(i);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Map View ==&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20043</id>
		<title>Android Development - Google Maps</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development_-_Google_Maps&amp;diff=20043"/>
		<updated>2013-10-11T11:22:47Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: Die Seite wurde neu angelegt: „== Link  auf Google Maps als Content Provider == Todo == MapView Activity ==  https://developers.google.com/maps/documentation/android/?hl=de  http://ddewaele.git…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link  auf Google Maps als Content Provider ==&lt;br /&gt;
Todo&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei ===&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activity Klasse&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20042</id>
		<title>Android - Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20042"/>
		<updated>2013-10-11T11:11:12Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Manifest Datei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier gibt es nur Code Schnipsel zum Kopieren ohne Erklärung&lt;br /&gt;
== Neue Activity ==&lt;br /&gt;
 MyNameActivity.java // Class&lt;br /&gt;
 activity_my_name.xml // Layout File&lt;br /&gt;
 AndroidManifest.xml&lt;br /&gt;
 strings.xml&lt;br /&gt;
&lt;br /&gt;
=== Activity Class ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.myappname;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
&lt;br /&gt;
public class MyNameActivity extends Activity{&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_my_name);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Buttons verdrahten ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
public class MyNameActivity extends Activity implements OnClickListener {&lt;br /&gt;
	Button b1,b2;&lt;br /&gt;
...&lt;br /&gt;
		b1 = (Button)findViewById(R.id.b1); &lt;br /&gt;
		b2 = (Button)findViewById(R.id.b2); &lt;br /&gt;
		b1.setOnClickListener(this); &lt;br /&gt;
		b2.setOnClickListener(this);&lt;br /&gt;
...&lt;br /&gt;
	@Override&lt;br /&gt;
	public void onClick(View v) {&lt;br /&gt;
		int id = v.getId();&lt;br /&gt;
		Intent i = null;&lt;br /&gt;
		switch (id){&lt;br /&gt;
		case R.id.b1:&lt;br /&gt;
			i = new Intent(this,OtherNameActivity.class);&lt;br /&gt;
			break;&lt;br /&gt;
		case R.id.b2:&lt;br /&gt;
			i = new Intent(&amp;quot;de.webmynet.appname.OTHERNAME&amp;quot;);//Variant with Manifest Activity Name&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		default:&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		startActivity(i);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei ===&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Application Tag wird der API-Key hinterlegt:&lt;br /&gt;
 &amp;lt;meta-data android:name=&amp;quot;com.google.android.maps.v2.API_KEY&amp;quot; android:value=&amp;quot;INSERT_YOUR_API_KEY_HERE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activity Klasse&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20041</id>
		<title>Android - Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20041"/>
		<updated>2013-10-11T11:07:43Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* MapView Activity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier gibt es nur Code Schnipsel zum Kopieren ohne Erklärung&lt;br /&gt;
== Neue Activity ==&lt;br /&gt;
 MyNameActivity.java // Class&lt;br /&gt;
 activity_my_name.xml // Layout File&lt;br /&gt;
 AndroidManifest.xml&lt;br /&gt;
 strings.xml&lt;br /&gt;
&lt;br /&gt;
=== Activity Class ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.myappname;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
&lt;br /&gt;
public class MyNameActivity extends Activity{&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_my_name);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Buttons verdrahten ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
public class MyNameActivity extends Activity implements OnClickListener {&lt;br /&gt;
	Button b1,b2;&lt;br /&gt;
...&lt;br /&gt;
		b1 = (Button)findViewById(R.id.b1); &lt;br /&gt;
		b2 = (Button)findViewById(R.id.b2); &lt;br /&gt;
		b1.setOnClickListener(this); &lt;br /&gt;
		b2.setOnClickListener(this);&lt;br /&gt;
...&lt;br /&gt;
	@Override&lt;br /&gt;
	public void onClick(View v) {&lt;br /&gt;
		int id = v.getId();&lt;br /&gt;
		Intent i = null;&lt;br /&gt;
		switch (id){&lt;br /&gt;
		case R.id.b1:&lt;br /&gt;
			i = new Intent(this,OtherNameActivity.class);&lt;br /&gt;
			break;&lt;br /&gt;
		case R.id.b2:&lt;br /&gt;
			i = new Intent(&amp;quot;de.webmynet.appname.OTHERNAME&amp;quot;);//Variant with Manifest Activity Name&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		default:&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		startActivity(i);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekt und API Key ===&lt;br /&gt;
* Project Properties &amp;gt; Android &amp;gt; Project Build Targets &amp;gt; Google APIs&lt;br /&gt;
* Fingerprint holen&lt;br /&gt;
* Registrieren auf der google developer console und API Schlüssel holen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manifest Datei ===&lt;br /&gt;
vor application tag&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Google Maps related permissions --&amp;gt;&lt;br /&gt;
&amp;lt;permission android:name=&amp;quot;com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE&amp;quot; android:protectionLevel=&amp;quot;signature&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.example.mapdemo.permission.MAPS_RECEIVE&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Network connectivity permissions --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Access Google based webservices --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;com.google.android.providers.gsf.permission.READ_GSERVICES&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- External storage for caching. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- My Location --&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Maps API needs OpenGL ES 2.0. --&amp;gt;&lt;br /&gt;
&amp;lt;uses-feature android:glEsVersion=&amp;quot;0x00020000&amp;quot; android:required=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activity Klasse&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Apps_signieren,_ver%C3%B6ffentlichen_und_API_Keys&amp;diff=20040</id>
		<title>Android - Apps signieren, veröffentlichen und API Keys</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Apps_signieren,_ver%C3%B6ffentlichen_und_API_Keys&amp;diff=20040"/>
		<updated>2013-10-11T10:48:38Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* App Zertifikat Fingerprint anzeigen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Kurzanleitung ===&lt;br /&gt;
Zur Veröffentlichung einer Android App muß man:&lt;br /&gt;
* Die App Signieren (Zertifikat erstellen das für den Release gültig sein soll)&lt;br /&gt;
* Den SHA Fingerprint des Zertifikats an Google übermitteln (braucht man auch wenn man diverse Google APIs wie die Map API im Code nutzen will).&lt;br /&gt;
&lt;br /&gt;
Am schnellsten bekommt man den Fingerprint für den Debug - Keystore, in Eclipse über Einstellungen &amp;gt; Android &amp;gt; Build&lt;br /&gt;
=== Sicherheitshinweise ===&lt;br /&gt;
http://developer.android.com/guide/topics/security/security.html&lt;br /&gt;
&lt;br /&gt;
=== Einführung===&lt;br /&gt;
Apps bekommen ein Sicherheitszertifikat mit dem sie vor dem veröffentlichen signiert werden. Diese &amp;#039;&amp;#039;&amp;#039;Signatur erstellt i.d.r. der Entwickler selbst&amp;#039;&amp;#039;&amp;#039;. Beim Debuggen erstellt Eclipse automatisch ein Testzertifikat. Für manche Anwendungen die einen API Key von Google benötigen muß man schon frühzeitig ein Release Zertifikat erstellen, das man bei Google Registrieren kann.&lt;br /&gt;
&lt;br /&gt;
=== Kurzanleitung: Zertifikat und Fingerprint auf Eclipse unter Mac ===&lt;br /&gt;
In Eclipse mit Mac OSX ist das keytool bereits enthalten:&lt;br /&gt;
&lt;br /&gt;
 File -&amp;gt; Export -&amp;gt; Android -&amp;gt; Export Android Application -&amp;gt; click next -&amp;gt; select your project -&amp;gt; click next -&amp;gt; new keystore&lt;br /&gt;
&lt;br /&gt;
Am Ende werden die Fingerprints angezeigt. Man kann diese aber auch anzeigen wenn man im Terminal in das Keystore-Verzeichnis wechselt und folgendes eingibt:&lt;br /&gt;
 keytool -list -v -keystore &amp;quot;keyStoreName&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== API Keys holen ====&lt;br /&gt;
Auf https://code.google.com/apis/console/ registriert man dann alle Apps die zu diesem Fingerprint / dieser Signierung gehören. Dazu legt man ein Projekt (beliebiger Name) an und klickt dann unter API Access auf &amp;#039;&amp;#039;&amp;#039;Generate new Android Key&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Dort legt man die SHA Fingerprints und den zugehörigen Package Name der App ab.&lt;br /&gt;
&lt;br /&gt;
===Ein selbst signiertes Release Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Quelle: Buch Android Programmierung&lt;br /&gt;
&lt;br /&gt;
Sind Sie bereit, Ihren Code für die Veröffentlichung zu signieren? Zunächst erstellen Sie mit dem keytool-Befehl einen privaten Schlüssel:&lt;br /&gt;
 keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 50000 &lt;br /&gt;
Für my-release-key können Sie einen Namen Ihrer Wahl angeben und für alias_name einen Alias Ihrer Wahl. Die Parameter -keysize und -validity sollten so bleiben wie im Code oben.&lt;br /&gt;
&lt;br /&gt;
==== Sicherheit ====&lt;br /&gt;
Sobald eine App mit dem Zertifikat veröffentlicht ist wird das Zertifikat unersetzlich.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ihr Signierzertifikat verlieren, verlieren Sie Ihre Identität für Android-Geräte und Google Play. Das heißt, dass Sie, obwohl Sie den gleichen Code wie zuvor kompilieren und veröffentlichen, die neu kompilierten Anwendungen nicht nutzen können, um bereits veröffentlichte Anwendungen zu aktualisieren, da weder Android-Geräte noch Google Play Sie als den App-Urheber wiedererkennen.&lt;br /&gt;
Bewahren Sie mehrere Sicherungskopien Ihres Signierzertifikats auf unterschiedlichen Typen von Medien (auch auf Papier) an verschiedenen Orten auf. Und sorgen Sie dafür, dass diese Sicherungskopien sicher sind. Wenn Ihr Signierzertifikat von anderen als Ihnen selbst genutzt wird, können diese Leute Ihre Programme auf den Android-Geräten Ihrer Benutzer ändern.&lt;br /&gt;
Ausführliche Empfehlungen von der Android-Entwicklerseite zur Sicherung Ihres Signierzertifikats finden Sie unter http://developer.android.com/guide/publishing/app-signing.html#secure-key.&lt;br /&gt;
&lt;br /&gt;
Bevor die App veröffentlicht ist kann man die Signatur jederzeit wegwerfen und erneuern.&lt;br /&gt;
&lt;br /&gt;
=== Google Maps API Key ===&lt;br /&gt;
* Notwendig für Zugriffe auf den Google Maps Kartenserver. &lt;br /&gt;
* Alle Android Apps müssen mit einem digitalen Zertifikat signiert werden für das der Entwickler den private key hat. Damit werden die Apps auf dem Map-Server oder im PlayStore getrackt.&lt;br /&gt;
* Man benötigt einen Schlüssel für jedes Zertifikat&lt;br /&gt;
* In der Praxis erstellt man ein Zertifikat für jede App (theoretisch kann man auch mehrere mit einem Zertifikat signieren)&lt;br /&gt;
* Für die Entwicklung nutzt Eclipse ein Entwickler Zertifikat ohne API Key dies reicht nicht bei Apps die einen Maps API Key benötigen&lt;br /&gt;
=== Google Maps API Key erstellen ===&lt;br /&gt;
==== Google Play Services Installieren ====&lt;br /&gt;
Dieses SDK benötigt man um einen Key zu holen (Dieser Schritt muß nur einmal gemacht werden)&lt;br /&gt;
* Android SDK aus Eclipse oder über Terminal starten.(On Mac or Linux,  tools/ directory Befehl: android sdk)&lt;br /&gt;
* Im Android SDK Extras &amp;gt; Google Play services SDK installieren&lt;br /&gt;
==== App Zertifikat Fingerprint anzeigen ====&lt;br /&gt;
Es gibt Debug Zertifikate und Release Zertifikate. Das Debug Zertifikat wird von Eclipse automatisch beim Debuggen der App erstellt. Um den passenden Key zu bekommen braucht man den Fingerprint des gewünschten  Zertifikats.&lt;br /&gt;
===== Debug Zertifikat Fingerprint =====&lt;br /&gt;
In Eclipse:&lt;br /&gt;
&lt;br /&gt;
Über &lt;br /&gt;
 Einstellungen &amp;gt; Android &amp;gt; Build&lt;br /&gt;
&lt;br /&gt;
Manuell:&lt;br /&gt;
&lt;br /&gt;
Die Zertifikate kann man aus dem debug keystore file auslesen. Es nennt sich debug.keystore und wird beim ersten erstellen des Projekts erzeugt. Es befindet sich im gleichen Verzeichnis wie die Android Virtual Device (AVD) Dateien. Unter Mac ist das:&lt;br /&gt;
 ~/.android/&lt;br /&gt;
Windows Vista and Windows 7: &lt;br /&gt;
 C:\Users\your_user_name\.android\&lt;br /&gt;
In Eclipse kann man den Ort mit &lt;br /&gt;
 Windows &amp;gt; Prefs &amp;gt; Android &amp;gt; Build &lt;br /&gt;
Anzeigen lassen (dann kopieren und in den Finder kopieren.&lt;br /&gt;
&lt;br /&gt;
List the SHA-1 fingerprint im Terminal:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android&lt;br /&gt;
Ausgabe sieht etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Alias name: androiddebugkey&lt;br /&gt;
 Creation date: Jan 01, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4aa9b300&lt;br /&gt;
 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeile mit SHA1 enthält den fingerprint, eine Sequenz von 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Release Zertifikat anzeigen =====&lt;br /&gt;
Auch hier muß man das release certificate keystore file finden, dies ist jedoch nicht immer am gleichen Ort. Man kann einen Ort festlegen, wenn man das release build für die App macht. Wenn man es nicht macht bleibt die App unsigniert und man kann Sie beim Publizieren Signieren. Da wir aber den API Key brauchen geht das in diesem Fall nicht.&lt;br /&gt;
&lt;br /&gt;
Für das release Zertifikat braucht man auch den certificate&amp;#039;s alias und die Passwörter für den keystore und das Zertifikat.&lt;br /&gt;
&lt;br /&gt;
So kann man die Alias Liste für alle Keys im Keystore anzeigen:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -keystore your_keystore_name&lt;br /&gt;
Ersetze &amp;#039;&amp;#039;your_keystore_name&amp;#039;&amp;#039; mit dem fully-qualified Pfad und dem Namen des Keystore, inklusive der .keystore extension. Es wird nach dem keystore Passwort gefragt und danach die Liste angezeigt.&lt;br /&gt;
&lt;br /&gt;
Jetzt können wir folgendes eingeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keytool -list -v -keystore your_keystore_name -alias your_alias_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace your_keystore_name with the fully-qualified path and name of the keystore, including the .keystore extension. Replace your_alias_name with the alias that you assigned to the certificate when you created it.&lt;br /&gt;
&lt;br /&gt;
Caution: To protect your keystore and key, don&amp;#039;t enter the storepass or keypass arguments on the command line unless you&amp;#039;re confident of your computer&amp;#039;s security. For example, on a public computer, someone could look at your terminal window history or list of running processes, get the password, and then have write access to your signing certificate. This would allow that person to modify or replace your application with their own.&lt;br /&gt;
&lt;br /&gt;
You should see a display that is similar to this:&lt;br /&gt;
&lt;br /&gt;
 Alias name: &amp;lt;alias_name&amp;gt;&lt;br /&gt;
 Creation date: Feb 02, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4cc9b300&lt;br /&gt;
 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
The line that begins SHA1 contains the certificate&amp;#039;s SHA-1 fingerprint. The fingerprint is the sequence of 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Projekt in der Google APIs Console registrieren =====&lt;br /&gt;
and add the Maps API as a service for the project.&lt;br /&gt;
*Once you have a project set up, you can request one or more keys.&lt;br /&gt;
*Finally, you can add your key to your application and begin development.&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Apps_signieren,_ver%C3%B6ffentlichen_und_API_Keys&amp;diff=20039</id>
		<title>Android - Apps signieren, veröffentlichen und API Keys</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Apps_signieren,_ver%C3%B6ffentlichen_und_API_Keys&amp;diff=20039"/>
		<updated>2013-10-11T10:47:10Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: Die Seite wurde neu angelegt: „=== Kurzanleitung === Zur Veröffentlichung einer Android App muß man: * Die App Signieren (Zertifikat erstellen das für den Release gültig sein soll) * Den SH…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Kurzanleitung ===&lt;br /&gt;
Zur Veröffentlichung einer Android App muß man:&lt;br /&gt;
* Die App Signieren (Zertifikat erstellen das für den Release gültig sein soll)&lt;br /&gt;
* Den SHA Fingerprint des Zertifikats an Google übermitteln (braucht man auch wenn man diverse Google APIs wie die Map API im Code nutzen will).&lt;br /&gt;
&lt;br /&gt;
Am schnellsten bekommt man den Fingerprint für den Debug - Keystore, in Eclipse über Einstellungen &amp;gt; Android &amp;gt; Build&lt;br /&gt;
=== Sicherheitshinweise ===&lt;br /&gt;
http://developer.android.com/guide/topics/security/security.html&lt;br /&gt;
&lt;br /&gt;
=== Einführung===&lt;br /&gt;
Apps bekommen ein Sicherheitszertifikat mit dem sie vor dem veröffentlichen signiert werden. Diese &amp;#039;&amp;#039;&amp;#039;Signatur erstellt i.d.r. der Entwickler selbst&amp;#039;&amp;#039;&amp;#039;. Beim Debuggen erstellt Eclipse automatisch ein Testzertifikat. Für manche Anwendungen die einen API Key von Google benötigen muß man schon frühzeitig ein Release Zertifikat erstellen, das man bei Google Registrieren kann.&lt;br /&gt;
&lt;br /&gt;
=== Kurzanleitung: Zertifikat und Fingerprint auf Eclipse unter Mac ===&lt;br /&gt;
In Eclipse mit Mac OSX ist das keytool bereits enthalten:&lt;br /&gt;
&lt;br /&gt;
 File -&amp;gt; Export -&amp;gt; Android -&amp;gt; Export Android Application -&amp;gt; click next -&amp;gt; select your project -&amp;gt; click next -&amp;gt; new keystore&lt;br /&gt;
&lt;br /&gt;
Am Ende werden die Fingerprints angezeigt. Man kann diese aber auch anzeigen wenn man im Terminal in das Keystore-Verzeichnis wechselt und folgendes eingibt:&lt;br /&gt;
 keytool -list -v -keystore &amp;quot;keyStoreName&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== API Keys holen ====&lt;br /&gt;
Auf https://code.google.com/apis/console/ registriert man dann alle Apps die zu diesem Fingerprint / dieser Signierung gehören. Dazu legt man ein Projekt (beliebiger Name) an und klickt dann unter API Access auf &amp;#039;&amp;#039;&amp;#039;Generate new Android Key&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Dort legt man die SHA Fingerprints und den zugehörigen Package Name der App ab.&lt;br /&gt;
&lt;br /&gt;
===Ein selbst signiertes Release Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Quelle: Buch Android Programmierung&lt;br /&gt;
&lt;br /&gt;
Sind Sie bereit, Ihren Code für die Veröffentlichung zu signieren? Zunächst erstellen Sie mit dem keytool-Befehl einen privaten Schlüssel:&lt;br /&gt;
 keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 50000 &lt;br /&gt;
Für my-release-key können Sie einen Namen Ihrer Wahl angeben und für alias_name einen Alias Ihrer Wahl. Die Parameter -keysize und -validity sollten so bleiben wie im Code oben.&lt;br /&gt;
&lt;br /&gt;
==== Sicherheit ====&lt;br /&gt;
Sobald eine App mit dem Zertifikat veröffentlicht ist wird das Zertifikat unersetzlich.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ihr Signierzertifikat verlieren, verlieren Sie Ihre Identität für Android-Geräte und Google Play. Das heißt, dass Sie, obwohl Sie den gleichen Code wie zuvor kompilieren und veröffentlichen, die neu kompilierten Anwendungen nicht nutzen können, um bereits veröffentlichte Anwendungen zu aktualisieren, da weder Android-Geräte noch Google Play Sie als den App-Urheber wiedererkennen.&lt;br /&gt;
Bewahren Sie mehrere Sicherungskopien Ihres Signierzertifikats auf unterschiedlichen Typen von Medien (auch auf Papier) an verschiedenen Orten auf. Und sorgen Sie dafür, dass diese Sicherungskopien sicher sind. Wenn Ihr Signierzertifikat von anderen als Ihnen selbst genutzt wird, können diese Leute Ihre Programme auf den Android-Geräten Ihrer Benutzer ändern.&lt;br /&gt;
Ausführliche Empfehlungen von der Android-Entwicklerseite zur Sicherung Ihres Signierzertifikats finden Sie unter http://developer.android.com/guide/publishing/app-signing.html#secure-key.&lt;br /&gt;
&lt;br /&gt;
Bevor die App veröffentlicht ist kann man die Signatur jederzeit wegwerfen und erneuern.&lt;br /&gt;
&lt;br /&gt;
=== Google Maps API Key ===&lt;br /&gt;
* Notwendig für Zugriffe auf den Google Maps Kartenserver. &lt;br /&gt;
* Alle Android Apps müssen mit einem digitalen Zertifikat signiert werden für das der Entwickler den private key hat. Damit werden die Apps auf dem Map-Server oder im PlayStore getrackt.&lt;br /&gt;
* Man benötigt einen Schlüssel für jedes Zertifikat&lt;br /&gt;
* In der Praxis erstellt man ein Zertifikat für jede App (theoretisch kann man auch mehrere mit einem Zertifikat signieren)&lt;br /&gt;
* Für die Entwicklung nutzt Eclipse ein Entwickler Zertifikat ohne API Key dies reicht nicht bei Apps die einen Maps API Key benötigen&lt;br /&gt;
=== Google Maps API Key erstellen ===&lt;br /&gt;
==== Google Play Services Installieren ====&lt;br /&gt;
Dieses SDK benötigt man um einen Key zu holen (Dieser Schritt muß nur einmal gemacht werden)&lt;br /&gt;
* Android SDK aus Eclipse oder über Terminal starten.(On Mac or Linux,  tools/ directory Befehl: android sdk)&lt;br /&gt;
* Im Android SDK Extras &amp;gt; Google Play services SDK installieren&lt;br /&gt;
==== App Zertifikat Fingerprint anzeigen ====&lt;br /&gt;
Es gibt Debug Zertifikate und Release Zertifikate. Das Debug Zertifikat wird von Eclipse automatisch beim Debuggen der App erstellt. Um den passenden Key zu bekommen braucht man den Fingerprint des gewünschten  Zertifikats.&lt;br /&gt;
===== Debug Zertifikat Fingerprint =====&lt;br /&gt;
Die Zertifikate kann man aus dem debug keystore file auslesen. Es nennt sich debug.keystore und wird beim ersten erstellen des Projekts erzeugt. Es befindet sich im gleichen Verzeichnis wie die Android Virtual Device (AVD) Dateien. Unter Mac ist das:&lt;br /&gt;
 ~/.android/&lt;br /&gt;
Windows Vista and Windows 7: &lt;br /&gt;
 C:\Users\your_user_name\.android\&lt;br /&gt;
In Eclipse kann man den Ort mit &lt;br /&gt;
 Windows &amp;gt; Prefs &amp;gt; Android &amp;gt; Build &lt;br /&gt;
Anzeigen lassen (dann kopieren und in den Finder kopieren.&lt;br /&gt;
&lt;br /&gt;
List the SHA-1 fingerprint im Terminal:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android&lt;br /&gt;
Ausgabe sieht etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Alias name: androiddebugkey&lt;br /&gt;
 Creation date: Jan 01, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4aa9b300&lt;br /&gt;
 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeile mit SHA1 enthält den fingerprint, eine Sequenz von 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Release Zertifikat anzeigen =====&lt;br /&gt;
Auch hier muß man das release certificate keystore file finden, dies ist jedoch nicht immer am gleichen Ort. Man kann einen Ort festlegen, wenn man das release build für die App macht. Wenn man es nicht macht bleibt die App unsigniert und man kann Sie beim Publizieren Signieren. Da wir aber den API Key brauchen geht das in diesem Fall nicht.&lt;br /&gt;
&lt;br /&gt;
Für das release Zertifikat braucht man auch den certificate&amp;#039;s alias und die Passwörter für den keystore und das Zertifikat.&lt;br /&gt;
&lt;br /&gt;
So kann man die Alias Liste für alle Keys im Keystore anzeigen:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -keystore your_keystore_name&lt;br /&gt;
Ersetze &amp;#039;&amp;#039;your_keystore_name&amp;#039;&amp;#039; mit dem fully-qualified Pfad und dem Namen des Keystore, inklusive der .keystore extension. Es wird nach dem keystore Passwort gefragt und danach die Liste angezeigt.&lt;br /&gt;
&lt;br /&gt;
Jetzt können wir folgendes eingeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keytool -list -v -keystore your_keystore_name -alias your_alias_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace your_keystore_name with the fully-qualified path and name of the keystore, including the .keystore extension. Replace your_alias_name with the alias that you assigned to the certificate when you created it.&lt;br /&gt;
&lt;br /&gt;
Caution: To protect your keystore and key, don&amp;#039;t enter the storepass or keypass arguments on the command line unless you&amp;#039;re confident of your computer&amp;#039;s security. For example, on a public computer, someone could look at your terminal window history or list of running processes, get the password, and then have write access to your signing certificate. This would allow that person to modify or replace your application with their own.&lt;br /&gt;
&lt;br /&gt;
You should see a display that is similar to this:&lt;br /&gt;
&lt;br /&gt;
 Alias name: &amp;lt;alias_name&amp;gt;&lt;br /&gt;
 Creation date: Feb 02, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4cc9b300&lt;br /&gt;
 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
The line that begins SHA1 contains the certificate&amp;#039;s SHA-1 fingerprint. The fingerprint is the sequence of 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Projekt in der Google APIs Console registrieren =====&lt;br /&gt;
and add the Maps API as a service for the project.&lt;br /&gt;
*Once you have a project set up, you can request one or more keys.&lt;br /&gt;
*Finally, you can add your key to your application and begin development.&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20038</id>
		<title>Android Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20038"/>
		<updated>2013-10-11T10:35:55Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Android Apps signieren und veröffentlichen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
* Android Developer Referenz von Google: http://developer.android.com/reference/packages.html&lt;br /&gt;
* http://www.vogella.com/articles/Android/article.html (umfassendes Tutorial gepflegt seit 2009 (Stand 2013))&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Maps]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Setting up PlayStore Service]]&lt;br /&gt;
&lt;br /&gt;
== Android Development - First Steps ==&lt;br /&gt;
[[Android Development - Hello World]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - User Interface programmieren]] (Layout anlegen)&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Grundfunktionen Programmieren]] (Neue Activity starten, Intents, Button und Textfelder)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Android Entwicklungsumgebung ==&lt;br /&gt;
=== Eclipse und Android SDK ===&lt;br /&gt;
Es gibt ein angepasstes Eclipse Paket mit den Android Tools auf http://developer.android.com/sdk/installing/index.html, das ist der schnellste Weg. Im Folgenden ein Beispiel für die klassische Installation, bei der wir alle Schritte nacheinander durchführen.&lt;br /&gt;
&lt;br /&gt;
==== Benötigte Komponenten ====&lt;br /&gt;
Im Einzelnen benötigt man über eine Eclipse / Java IDE noch:&lt;br /&gt;
* ADT plugin (Android Developer Tools)&lt;br /&gt;
* Android SDK Tools&lt;br /&gt;
* Android Platform-tools&lt;br /&gt;
* The latest Android platform&lt;br /&gt;
* The latest Android system image for the emulator&lt;br /&gt;
&lt;br /&gt;
==== Eclipse Installation ====&lt;br /&gt;
http://help.eclipse.org/juno/index.jsp&lt;br /&gt;
&lt;br /&gt;
* Download Eclipse (z.B. Classic)&lt;br /&gt;
* Download und Installation des Java JDK (Java Entwickler SDK)&lt;br /&gt;
* Registrieren des JDK in Eclipse (Preferences &amp;gt; Java &amp;gt; Installed JREs&lt;br /&gt;
==== Android SDK installieren ====&lt;br /&gt;
* Android SDK downloaden und installieren (benötigt JDK) Beim ersten Start fragt der SDK Manager welche Tools für welche Android Plattform man nachladen möchte. Wenn man mit Eclipse arbeitet sollte man den &amp;#039;&amp;#039;&amp;#039;Manager abbrechen&amp;#039;&amp;#039;&amp;#039; und dies später über das Eclipse Plugin machen.&lt;br /&gt;
==== ADT Plugin für Eclipse installieren ====&lt;br /&gt;
http://developer.android.com/sdk/installing/installing-adt.html&lt;br /&gt;
&lt;br /&gt;
* In Eclipse &amp;#039;&amp;#039;Help &amp;gt; Install New Software&amp;#039;&amp;#039;.&lt;br /&gt;
* Add Repository Dialog &amp;quot;&amp;#039;&amp;#039;ADT Plugin&amp;#039;&amp;#039;&amp;quot; als Name und folgende URL angeben:&lt;br /&gt;
 https://dl-ssl.google.com/android/eclipse/&lt;br /&gt;
Bei Problemen mit der Verbindunghttp verwenden.&lt;br /&gt;
* Developer Tools auswählen und die Installation fertigstellen.&lt;br /&gt;
* Nach der Installation Eclipse neu starten.&lt;br /&gt;
* Nach dem Neustart von Eclipse fragt das Plugin nach dem Ort des SDK (wenn er es noch nicht gefunden hat)&lt;br /&gt;
* Über Windows SDK-Manager können wir jetzt jederzeit die restlichen Android Komponenten laden die wir benötigen.&lt;br /&gt;
&lt;br /&gt;
== Android Content Provider API==&lt;br /&gt;
Content-Provider speichern Anwendungsdaten, weil View und Controller sich damit nicht befassen sollten&lt;br /&gt;
&lt;br /&gt;
[[Android - Content Provider API]]&lt;br /&gt;
&lt;br /&gt;
== Android Debugging ==&lt;br /&gt;
=== Lint ===&lt;br /&gt;
=== Hierarchy Viewer ===&lt;br /&gt;
Eclipse View zum testen der Layout Hierarchie&lt;br /&gt;
&lt;br /&gt;
== Android Apps signieren und veröffentlichen ==&lt;br /&gt;
[[Android - Apps signieren, veröffentlichen und API Keys]]&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20037</id>
		<title>Android - Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20037"/>
		<updated>2013-10-11T10:28:29Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* MapView Activity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier gibt es nur Code Schnipsel zum Kopieren ohne Erklärung&lt;br /&gt;
== Neue Activity ==&lt;br /&gt;
 MyNameActivity.java // Class&lt;br /&gt;
 activity_my_name.xml // Layout File&lt;br /&gt;
 AndroidManifest.xml&lt;br /&gt;
 strings.xml&lt;br /&gt;
&lt;br /&gt;
=== Activity Class ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.myappname;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
&lt;br /&gt;
public class MyNameActivity extends Activity{&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_my_name);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Buttons verdrahten ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
public class MyNameActivity extends Activity implements OnClickListener {&lt;br /&gt;
	Button b1,b2;&lt;br /&gt;
...&lt;br /&gt;
		b1 = (Button)findViewById(R.id.b1); &lt;br /&gt;
		b2 = (Button)findViewById(R.id.b2); &lt;br /&gt;
		b1.setOnClickListener(this); &lt;br /&gt;
		b2.setOnClickListener(this);&lt;br /&gt;
...&lt;br /&gt;
	@Override&lt;br /&gt;
	public void onClick(View v) {&lt;br /&gt;
		int id = v.getId();&lt;br /&gt;
		Intent i = null;&lt;br /&gt;
		switch (id){&lt;br /&gt;
		case R.id.b1:&lt;br /&gt;
			i = new Intent(this,OtherNameActivity.class);&lt;br /&gt;
			break;&lt;br /&gt;
		case R.id.b2:&lt;br /&gt;
			i = new Intent(&amp;quot;de.webmynet.appname.OTHERNAME&amp;quot;);//Variant with Manifest Activity Name&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		default:&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		startActivity(i);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Google Play Services SDK muß installiert sein (SDK Manager)&lt;br /&gt;
* In Eclipse muß folgendes Projekt importiert werden: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.&lt;br /&gt;
* Man braucht eine gültige Signierung für die App&lt;br /&gt;
&lt;br /&gt;
Manifest (innerhalb application tag):&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Activity Klasse&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20036</id>
		<title>Android - Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Cheat_Sheet&amp;diff=20036"/>
		<updated>2013-10-11T09:37:10Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier gibt es nur Code Schnipsel zum Kopieren ohne Erklärung&lt;br /&gt;
== Neue Activity ==&lt;br /&gt;
 MyNameActivity.java // Class&lt;br /&gt;
 activity_my_name.xml // Layout File&lt;br /&gt;
 AndroidManifest.xml&lt;br /&gt;
 strings.xml&lt;br /&gt;
&lt;br /&gt;
=== Activity Class ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package de.webmynet.android.myappname;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
&lt;br /&gt;
public class MyNameActivity extends Activity{&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_my_name);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Buttons verdrahten ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
public class MyNameActivity extends Activity implements OnClickListener {&lt;br /&gt;
	Button b1,b2;&lt;br /&gt;
...&lt;br /&gt;
		b1 = (Button)findViewById(R.id.b1); &lt;br /&gt;
		b2 = (Button)findViewById(R.id.b2); &lt;br /&gt;
		b1.setOnClickListener(this); &lt;br /&gt;
		b2.setOnClickListener(this);&lt;br /&gt;
...&lt;br /&gt;
	@Override&lt;br /&gt;
	public void onClick(View v) {&lt;br /&gt;
		int id = v.getId();&lt;br /&gt;
		Intent i = null;&lt;br /&gt;
		switch (id){&lt;br /&gt;
		case R.id.b1:&lt;br /&gt;
			i = new Intent(this,OtherNameActivity.class);&lt;br /&gt;
			break;&lt;br /&gt;
		case R.id.b2:&lt;br /&gt;
			i = new Intent(&amp;quot;de.webmynet.appname.OTHERNAME&amp;quot;);//Variant with Manifest Activity Name&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		default:&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		startActivity(i);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MapView Activity ==&lt;br /&gt;
 https://developers.google.com/maps/documentation/android/?hl=de&lt;br /&gt;
 http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1&lt;br /&gt;
&lt;br /&gt;
* Google Play Services SDK configured within Eclipse (SDK Manager)&lt;br /&gt;
Manifest (innerhalb application tag):&lt;br /&gt;
 &amp;lt;uses-library android:name=&amp;quot;com.google.android.maps&amp;quot; /&amp;gt;&lt;br /&gt;
Activity Klasse&lt;br /&gt;
 extends MapActivity&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_-_Content_Provider_API&amp;diff=20035</id>
		<title>Android - Content Provider API</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_-_Content_Provider_API&amp;diff=20035"/>
		<updated>2013-10-11T08:48:57Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: Die Seite wurde neu angelegt: „ == Überblick == * Content Provider stehen Betriebssystemweit zur Verfügung * Zugriff über URI - die App weiß nicht welcher Content-Provider die Anfrage aufl…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Überblick ==&lt;br /&gt;
* Content Provider stehen Betriebssystemweit zur Verfügung&lt;br /&gt;
* Zugriff über URI - die App weiß nicht welcher Content-Provider die Anfrage auflöst (z.B. Google Maps oder Orux Maps)&lt;br /&gt;
* Die Content-Provider-API ermöglicht einen vollständigen Zugriff auf die geteilten Inhalte. &lt;br /&gt;
* Inhalte können erstellt, gelesen, aktualisiert und gelöscht werden. Es gibt Requests zu folgenden Zwecken:&lt;br /&gt;
** neue Datensätze erstellen&lt;br /&gt;
** einen, alle oder eine begrenzte Menge von Datensätzen abrufen&lt;br /&gt;
** Datensätze aktualisieren&lt;br /&gt;
** Datensätze löschen&lt;br /&gt;
&lt;br /&gt;
== Warum Content Provider ==&lt;br /&gt;
Content-Provider speichern Anwendungsdaten, weil View und Controller sich damit nicht befassen sollten (Model View Controler Prinzip). Ein UI sollte nur aus gut angeordneten UI-Kompenten bestehen, die einzig und allein darauf ausgerichtet sind, Benutzeraktionen aufzunehmen. Ein gut geschriebener Anwendungscontroller enthält nur die Domain-Logik der Mobilanwendung.&lt;br /&gt;
&lt;br /&gt;
Das Teilen von Daten zwischen Anwendungen wird vereinfacht. Man braucht in vielen Fällen auch keine speziellen Dateien zu speichern.&lt;br /&gt;
&lt;br /&gt;
== Content Provider bauen ==&lt;br /&gt;
=== Aufgaben ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Öffentliche Content-Provider-API erstellen&amp;#039;&amp;#039;&amp;#039;, über die Clients auf den Content-Provider zugreifen können. Dazu:&lt;br /&gt;
** einen CONTENT_URI für Ihren Content-Provider definieren&lt;br /&gt;
** die &amp;#039;&amp;#039;&amp;#039;Spaltennamen&amp;#039;&amp;#039;&amp;#039; für die Kommunikation mit Clients erstellen&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;öffentliche statische String-Objekte&amp;#039;&amp;#039;&amp;#039; deklarieren, die Clients zur Angabe von Spalten nutzen können&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;MIME-Typen&amp;#039;&amp;#039;&amp;#039; für alle neuen Datentypen definieren&lt;br /&gt;
* Sie müssen Ihren &amp;#039;&amp;#039;&amp;#039;Content-Provider implementieren&amp;#039;&amp;#039;&amp;#039;. Dazu müssen Sie die folgenden Dinge tun:&lt;br /&gt;
** zentrale Content-Provider-API -&amp;gt; &amp;#039;&amp;#039;&amp;#039;die Klasse ContentProvider erweitern&amp;#039;&amp;#039;&amp;#039;, um eine eigene Content-Provider-Implementierung anzubieten.&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Provider-URI einrichten&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;SQLite-Datenbank&amp;#039;&amp;#039;&amp;#039; und die damit verbundenen Cursor erstellen, um die Content-Provider-Daten zu speichern.&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Cursor einsetzen&amp;#039;&amp;#039;&amp;#039;, um Daten für Clients zur Verfügung zu stellen, und gleichzeitig dynamische Aktualisierungen unterstützen.&lt;br /&gt;
** den &amp;#039;&amp;#039;&amp;#039;Prozess definieren&amp;#039;&amp;#039;&amp;#039;, über den Binärdaten an den Client zurückgeliefert werden.&lt;br /&gt;
** die grundlegenden query-, insert-, update- und delete-&amp;#039;&amp;#039;&amp;#039;Datenmethoden eines Cursors implementieren&amp;#039;&amp;#039;&amp;#039;, der an den Client zurückgeliefert wird.&lt;br /&gt;
** AndroidManifest.xml-Datei aktualisieren, um Ihren &amp;#039;&amp;#039;&amp;#039;&amp;lt;provider&amp;gt; zu deklarieren&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20034</id>
		<title>Android Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20034"/>
		<updated>2013-10-11T08:39:46Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Android Content Provider API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
* Android Developer Referenz von Google: http://developer.android.com/reference/packages.html&lt;br /&gt;
* http://www.vogella.com/articles/Android/article.html (umfassendes Tutorial gepflegt seit 2009 (Stand 2013))&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Maps]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Setting up PlayStore Service]]&lt;br /&gt;
&lt;br /&gt;
== Android Development - First Steps ==&lt;br /&gt;
[[Android Development - Hello World]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - User Interface programmieren]] (Layout anlegen)&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Grundfunktionen Programmieren]] (Neue Activity starten, Intents, Button und Textfelder)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Android Entwicklungsumgebung ==&lt;br /&gt;
=== Eclipse und Android SDK ===&lt;br /&gt;
Es gibt ein angepasstes Eclipse Paket mit den Android Tools auf http://developer.android.com/sdk/installing/index.html, das ist der schnellste Weg. Im Folgenden ein Beispiel für die klassische Installation, bei der wir alle Schritte nacheinander durchführen.&lt;br /&gt;
&lt;br /&gt;
==== Benötigte Komponenten ====&lt;br /&gt;
Im Einzelnen benötigt man über eine Eclipse / Java IDE noch:&lt;br /&gt;
* ADT plugin (Android Developer Tools)&lt;br /&gt;
* Android SDK Tools&lt;br /&gt;
* Android Platform-tools&lt;br /&gt;
* The latest Android platform&lt;br /&gt;
* The latest Android system image for the emulator&lt;br /&gt;
&lt;br /&gt;
==== Eclipse Installation ====&lt;br /&gt;
http://help.eclipse.org/juno/index.jsp&lt;br /&gt;
&lt;br /&gt;
* Download Eclipse (z.B. Classic)&lt;br /&gt;
* Download und Installation des Java JDK (Java Entwickler SDK)&lt;br /&gt;
* Registrieren des JDK in Eclipse (Preferences &amp;gt; Java &amp;gt; Installed JREs&lt;br /&gt;
==== Android SDK installieren ====&lt;br /&gt;
* Android SDK downloaden und installieren (benötigt JDK) Beim ersten Start fragt der SDK Manager welche Tools für welche Android Plattform man nachladen möchte. Wenn man mit Eclipse arbeitet sollte man den &amp;#039;&amp;#039;&amp;#039;Manager abbrechen&amp;#039;&amp;#039;&amp;#039; und dies später über das Eclipse Plugin machen.&lt;br /&gt;
==== ADT Plugin für Eclipse installieren ====&lt;br /&gt;
http://developer.android.com/sdk/installing/installing-adt.html&lt;br /&gt;
&lt;br /&gt;
* In Eclipse &amp;#039;&amp;#039;Help &amp;gt; Install New Software&amp;#039;&amp;#039;.&lt;br /&gt;
* Add Repository Dialog &amp;quot;&amp;#039;&amp;#039;ADT Plugin&amp;#039;&amp;#039;&amp;quot; als Name und folgende URL angeben:&lt;br /&gt;
 https://dl-ssl.google.com/android/eclipse/&lt;br /&gt;
Bei Problemen mit der Verbindunghttp verwenden.&lt;br /&gt;
* Developer Tools auswählen und die Installation fertigstellen.&lt;br /&gt;
* Nach der Installation Eclipse neu starten.&lt;br /&gt;
* Nach dem Neustart von Eclipse fragt das Plugin nach dem Ort des SDK (wenn er es noch nicht gefunden hat)&lt;br /&gt;
* Über Windows SDK-Manager können wir jetzt jederzeit die restlichen Android Komponenten laden die wir benötigen.&lt;br /&gt;
&lt;br /&gt;
== Android Content Provider API==&lt;br /&gt;
Content-Provider speichern Anwendungsdaten, weil View und Controller sich damit nicht befassen sollten&lt;br /&gt;
&lt;br /&gt;
[[Android - Content Provider API]]&lt;br /&gt;
&lt;br /&gt;
== Android Debugging ==&lt;br /&gt;
=== Lint ===&lt;br /&gt;
=== Hierarchy Viewer ===&lt;br /&gt;
Eclipse View zum testen der Layout Hierarchie&lt;br /&gt;
&lt;br /&gt;
== Android Apps signieren und veröffentlichen ==&lt;br /&gt;
=== Kurzanleitung ===&lt;br /&gt;
Zur Veröffentlichung einer Android App muß man:&lt;br /&gt;
* Die App Signieren (Zertifikat erstellen das für den Release gültig sein soll)&lt;br /&gt;
* Den SHA Fingerprint des Zertifikats an Google übermitteln (braucht man auch wenn man diverse Google APIs wie die Map API im Code nutzen will).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sicherheitshinweise ===&lt;br /&gt;
http://developer.android.com/guide/topics/security/security.html&lt;br /&gt;
&lt;br /&gt;
=== Einführung===&lt;br /&gt;
Apps bekommen ein Sicherheitszertifikat mit dem sie vor dem veröffentlichen signiert werden. Diese &amp;#039;&amp;#039;&amp;#039;Signatur erstellt i.d.r. der Entwickler selbst&amp;#039;&amp;#039;&amp;#039;. Beim Debuggen erstellt Eclipse automatisch ein Testzertifikat. Für manche Anwendungen die einen API Key von Google benötigen muß man schon frühzeitig ein Release Zertifikat erstellen, das man bei Google Registrieren kann.&lt;br /&gt;
&lt;br /&gt;
=== Kurzanleitung: Zertifikat und Fingerprint auf Eclipse unter Mac ===&lt;br /&gt;
In Eclipse mit Mac OSX ist das keytool bereits enthalten:&lt;br /&gt;
&lt;br /&gt;
 File -&amp;gt; Export -&amp;gt; Android -&amp;gt; Export Android Application -&amp;gt; click next -&amp;gt; select your project -&amp;gt; click next -&amp;gt; new keystore&lt;br /&gt;
&lt;br /&gt;
Am Ende werden die Fingerprints angezeigt. Man kann diese aber auch anzeigen wenn man im Terminal in das Keystore-Verzeichnis wechselt und folgendes eingibt:&lt;br /&gt;
 keytool -list -v -keystore &amp;quot;keyStoreName&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== API Keys holen ====&lt;br /&gt;
Auf https://code.google.com/apis/console/ registriert man dann alle Apps die zu diesem Fingerprint / dieser Signierung gehören. Dazu legt man ein Projekt (beliebiger Name) an und klickt dann unter API Access auf &amp;#039;&amp;#039;&amp;#039;Generate new Android Key&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Dort legt man die SHA Fingerprints und den zugehörigen Package Name der App ab.&lt;br /&gt;
&lt;br /&gt;
===Ein selbst signiertes Release Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Quelle: Buch Android Programmierung&lt;br /&gt;
&lt;br /&gt;
Sind Sie bereit, Ihren Code für die Veröffentlichung zu signieren? Zunächst erstellen Sie mit dem keytool-Befehl einen privaten Schlüssel:&lt;br /&gt;
 keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 50000 &lt;br /&gt;
Für my-release-key können Sie einen Namen Ihrer Wahl angeben und für alias_name einen Alias Ihrer Wahl. Die Parameter -keysize und -validity sollten so bleiben wie im Code oben.&lt;br /&gt;
&lt;br /&gt;
==== Sicherheit ====&lt;br /&gt;
Sobald eine App mit dem Zertifikat veröffentlicht ist wird das Zertifikat unersetzlich.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ihr Signierzertifikat verlieren, verlieren Sie Ihre Identität für Android-Geräte und Google Play. Das heißt, dass Sie, obwohl Sie den gleichen Code wie zuvor kompilieren und veröffentlichen, die neu kompilierten Anwendungen nicht nutzen können, um bereits veröffentlichte Anwendungen zu aktualisieren, da weder Android-Geräte noch Google Play Sie als den App-Urheber wiedererkennen.&lt;br /&gt;
Bewahren Sie mehrere Sicherungskopien Ihres Signierzertifikats auf unterschiedlichen Typen von Medien (auch auf Papier) an verschiedenen Orten auf. Und sorgen Sie dafür, dass diese Sicherungskopien sicher sind. Wenn Ihr Signierzertifikat von anderen als Ihnen selbst genutzt wird, können diese Leute Ihre Programme auf den Android-Geräten Ihrer Benutzer ändern.&lt;br /&gt;
Ausführliche Empfehlungen von der Android-Entwicklerseite zur Sicherung Ihres Signierzertifikats finden Sie unter http://developer.android.com/guide/publishing/app-signing.html#secure-key.&lt;br /&gt;
&lt;br /&gt;
Bevor die App veröffentlicht ist kann man die Signatur jederzeit wegwerfen und erneuern.&lt;br /&gt;
&lt;br /&gt;
=== Google Maps API Key ===&lt;br /&gt;
* Notwendig für Zugriffe auf den Google Maps Kartenserver. &lt;br /&gt;
* Alle Android Apps müssen mit einem digitalen Zertifikat signiert werden für das der Entwickler den private key hat. Damit werden die Apps auf dem Map-Server oder im PlayStore getrackt.&lt;br /&gt;
* Man benötigt einen Schlüssel für jedes Zertifikat&lt;br /&gt;
* In der Praxis erstellt man ein Zertifikat für jede App (theoretisch kann man auch mehrere mit einem Zertifikat signieren)&lt;br /&gt;
* Für die Entwicklung nutzt Eclipse ein Entwickler Zertifikat ohne API Key dies reicht nicht bei Apps die einen Maps API Key benötigen&lt;br /&gt;
=== Google Maps API Key erstellen ===&lt;br /&gt;
==== Google Play Services Installieren ====&lt;br /&gt;
Dieses SDK benötigt man um einen Key zu holen (Dieser Schritt muß nur einmal gemacht werden)&lt;br /&gt;
* Android SDK aus Eclipse oder über Terminal starten.(On Mac or Linux,  tools/ directory Befehl: android sdk)&lt;br /&gt;
* Im Android SDK Extras &amp;gt; Google Play services SDK installieren&lt;br /&gt;
==== App Zertifikat Fingerprint anzeigen ====&lt;br /&gt;
Es gibt Debug Zertifikate und Release Zertifikate. Das Debug Zertifikat wird von Eclipse automatisch beim Debuggen der App erstellt. Um den passenden Key zu bekommen braucht man den Fingerprint des gewünschten  Zertifikats.&lt;br /&gt;
===== Debug Zertifikat Fingerprint =====&lt;br /&gt;
Die Zertifikate kann man aus dem debug keystore file auslesen. Es nennt sich debug.keystore und wird beim ersten erstellen des Projekts erzeugt. Es befindet sich im gleichen Verzeichnis wie die Android Virtual Device (AVD) Dateien. Unter Mac ist das:&lt;br /&gt;
 ~/.android/&lt;br /&gt;
Windows Vista and Windows 7: &lt;br /&gt;
 C:\Users\your_user_name\.android\&lt;br /&gt;
In Eclipse kann man den Ort mit &lt;br /&gt;
 Windows &amp;gt; Prefs &amp;gt; Android &amp;gt; Build &lt;br /&gt;
Anzeigen lassen (dann kopieren und in den Finder kopieren.&lt;br /&gt;
&lt;br /&gt;
List the SHA-1 fingerprint im Terminal:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android&lt;br /&gt;
Ausgabe sieht etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Alias name: androiddebugkey&lt;br /&gt;
 Creation date: Jan 01, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4aa9b300&lt;br /&gt;
 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeile mit SHA1 enthält den fingerprint, eine Sequenz von 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Release Zertifikat anzeigen =====&lt;br /&gt;
Auch hier muß man das release certificate keystore file finden, dies ist jedoch nicht immer am gleichen Ort. Man kann einen Ort festlegen, wenn man das release build für die App macht. Wenn man es nicht macht bleibt die App unsigniert und man kann Sie beim Publizieren Signieren. Da wir aber den API Key brauchen geht das in diesem Fall nicht.&lt;br /&gt;
&lt;br /&gt;
Für das release Zertifikat braucht man auch den certificate&amp;#039;s alias und die Passwörter für den keystore und das Zertifikat.&lt;br /&gt;
&lt;br /&gt;
So kann man die Alias Liste für alle Keys im Keystore anzeigen:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -keystore your_keystore_name&lt;br /&gt;
Ersetze &amp;#039;&amp;#039;your_keystore_name&amp;#039;&amp;#039; mit dem fully-qualified Pfad und dem Namen des Keystore, inklusive der .keystore extension. Es wird nach dem keystore Passwort gefragt und danach die Liste angezeigt.&lt;br /&gt;
&lt;br /&gt;
Jetzt können wir folgendes eingeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keytool -list -v -keystore your_keystore_name -alias your_alias_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace your_keystore_name with the fully-qualified path and name of the keystore, including the .keystore extension. Replace your_alias_name with the alias that you assigned to the certificate when you created it.&lt;br /&gt;
&lt;br /&gt;
Caution: To protect your keystore and key, don&amp;#039;t enter the storepass or keypass arguments on the command line unless you&amp;#039;re confident of your computer&amp;#039;s security. For example, on a public computer, someone could look at your terminal window history or list of running processes, get the password, and then have write access to your signing certificate. This would allow that person to modify or replace your application with their own.&lt;br /&gt;
&lt;br /&gt;
You should see a display that is similar to this:&lt;br /&gt;
&lt;br /&gt;
 Alias name: &amp;lt;alias_name&amp;gt;&lt;br /&gt;
 Creation date: Feb 02, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4cc9b300&lt;br /&gt;
 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
The line that begins SHA1 contains the certificate&amp;#039;s SHA-1 fingerprint. The fingerprint is the sequence of 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Projekt in der Google APIs Console registrieren =====&lt;br /&gt;
and add the Maps API as a service for the project.&lt;br /&gt;
*Once you have a project set up, you can request one or more keys.&lt;br /&gt;
*Finally, you can add your key to your application and begin development.&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20033</id>
		<title>Android Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20033"/>
		<updated>2013-10-11T08:39:33Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Android Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
* Android Developer Referenz von Google: http://developer.android.com/reference/packages.html&lt;br /&gt;
* http://www.vogella.com/articles/Android/article.html (umfassendes Tutorial gepflegt seit 2009 (Stand 2013))&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Maps]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Setting up PlayStore Service]]&lt;br /&gt;
&lt;br /&gt;
== Android Development - First Steps ==&lt;br /&gt;
[[Android Development - Hello World]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - User Interface programmieren]] (Layout anlegen)&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Grundfunktionen Programmieren]] (Neue Activity starten, Intents, Button und Textfelder)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Android Entwicklungsumgebung ==&lt;br /&gt;
=== Eclipse und Android SDK ===&lt;br /&gt;
Es gibt ein angepasstes Eclipse Paket mit den Android Tools auf http://developer.android.com/sdk/installing/index.html, das ist der schnellste Weg. Im Folgenden ein Beispiel für die klassische Installation, bei der wir alle Schritte nacheinander durchführen.&lt;br /&gt;
&lt;br /&gt;
==== Benötigte Komponenten ====&lt;br /&gt;
Im Einzelnen benötigt man über eine Eclipse / Java IDE noch:&lt;br /&gt;
* ADT plugin (Android Developer Tools)&lt;br /&gt;
* Android SDK Tools&lt;br /&gt;
* Android Platform-tools&lt;br /&gt;
* The latest Android platform&lt;br /&gt;
* The latest Android system image for the emulator&lt;br /&gt;
&lt;br /&gt;
==== Eclipse Installation ====&lt;br /&gt;
http://help.eclipse.org/juno/index.jsp&lt;br /&gt;
&lt;br /&gt;
* Download Eclipse (z.B. Classic)&lt;br /&gt;
* Download und Installation des Java JDK (Java Entwickler SDK)&lt;br /&gt;
* Registrieren des JDK in Eclipse (Preferences &amp;gt; Java &amp;gt; Installed JREs&lt;br /&gt;
==== Android SDK installieren ====&lt;br /&gt;
* Android SDK downloaden und installieren (benötigt JDK) Beim ersten Start fragt der SDK Manager welche Tools für welche Android Plattform man nachladen möchte. Wenn man mit Eclipse arbeitet sollte man den &amp;#039;&amp;#039;&amp;#039;Manager abbrechen&amp;#039;&amp;#039;&amp;#039; und dies später über das Eclipse Plugin machen.&lt;br /&gt;
==== ADT Plugin für Eclipse installieren ====&lt;br /&gt;
http://developer.android.com/sdk/installing/installing-adt.html&lt;br /&gt;
&lt;br /&gt;
* In Eclipse &amp;#039;&amp;#039;Help &amp;gt; Install New Software&amp;#039;&amp;#039;.&lt;br /&gt;
* Add Repository Dialog &amp;quot;&amp;#039;&amp;#039;ADT Plugin&amp;#039;&amp;#039;&amp;quot; als Name und folgende URL angeben:&lt;br /&gt;
 https://dl-ssl.google.com/android/eclipse/&lt;br /&gt;
Bei Problemen mit der Verbindunghttp verwenden.&lt;br /&gt;
* Developer Tools auswählen und die Installation fertigstellen.&lt;br /&gt;
* Nach der Installation Eclipse neu starten.&lt;br /&gt;
* Nach dem Neustart von Eclipse fragt das Plugin nach dem Ort des SDK (wenn er es noch nicht gefunden hat)&lt;br /&gt;
* Über Windows SDK-Manager können wir jetzt jederzeit die restlichen Android Komponenten laden die wir benötigen.&lt;br /&gt;
&lt;br /&gt;
== Android Content Provider API==&lt;br /&gt;
Content-Provider speichern Anwendungsdaten, weil View und Controller sich damit nicht befassen sollten&lt;br /&gt;
&lt;br /&gt;
[[Android - Content Provider]]&lt;br /&gt;
&lt;br /&gt;
== Android Debugging ==&lt;br /&gt;
=== Lint ===&lt;br /&gt;
=== Hierarchy Viewer ===&lt;br /&gt;
Eclipse View zum testen der Layout Hierarchie&lt;br /&gt;
&lt;br /&gt;
== Android Apps signieren und veröffentlichen ==&lt;br /&gt;
=== Kurzanleitung ===&lt;br /&gt;
Zur Veröffentlichung einer Android App muß man:&lt;br /&gt;
* Die App Signieren (Zertifikat erstellen das für den Release gültig sein soll)&lt;br /&gt;
* Den SHA Fingerprint des Zertifikats an Google übermitteln (braucht man auch wenn man diverse Google APIs wie die Map API im Code nutzen will).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sicherheitshinweise ===&lt;br /&gt;
http://developer.android.com/guide/topics/security/security.html&lt;br /&gt;
&lt;br /&gt;
=== Einführung===&lt;br /&gt;
Apps bekommen ein Sicherheitszertifikat mit dem sie vor dem veröffentlichen signiert werden. Diese &amp;#039;&amp;#039;&amp;#039;Signatur erstellt i.d.r. der Entwickler selbst&amp;#039;&amp;#039;&amp;#039;. Beim Debuggen erstellt Eclipse automatisch ein Testzertifikat. Für manche Anwendungen die einen API Key von Google benötigen muß man schon frühzeitig ein Release Zertifikat erstellen, das man bei Google Registrieren kann.&lt;br /&gt;
&lt;br /&gt;
=== Kurzanleitung: Zertifikat und Fingerprint auf Eclipse unter Mac ===&lt;br /&gt;
In Eclipse mit Mac OSX ist das keytool bereits enthalten:&lt;br /&gt;
&lt;br /&gt;
 File -&amp;gt; Export -&amp;gt; Android -&amp;gt; Export Android Application -&amp;gt; click next -&amp;gt; select your project -&amp;gt; click next -&amp;gt; new keystore&lt;br /&gt;
&lt;br /&gt;
Am Ende werden die Fingerprints angezeigt. Man kann diese aber auch anzeigen wenn man im Terminal in das Keystore-Verzeichnis wechselt und folgendes eingibt:&lt;br /&gt;
 keytool -list -v -keystore &amp;quot;keyStoreName&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== API Keys holen ====&lt;br /&gt;
Auf https://code.google.com/apis/console/ registriert man dann alle Apps die zu diesem Fingerprint / dieser Signierung gehören. Dazu legt man ein Projekt (beliebiger Name) an und klickt dann unter API Access auf &amp;#039;&amp;#039;&amp;#039;Generate new Android Key&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Dort legt man die SHA Fingerprints und den zugehörigen Package Name der App ab.&lt;br /&gt;
&lt;br /&gt;
===Ein selbst signiertes Release Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Quelle: Buch Android Programmierung&lt;br /&gt;
&lt;br /&gt;
Sind Sie bereit, Ihren Code für die Veröffentlichung zu signieren? Zunächst erstellen Sie mit dem keytool-Befehl einen privaten Schlüssel:&lt;br /&gt;
 keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 50000 &lt;br /&gt;
Für my-release-key können Sie einen Namen Ihrer Wahl angeben und für alias_name einen Alias Ihrer Wahl. Die Parameter -keysize und -validity sollten so bleiben wie im Code oben.&lt;br /&gt;
&lt;br /&gt;
==== Sicherheit ====&lt;br /&gt;
Sobald eine App mit dem Zertifikat veröffentlicht ist wird das Zertifikat unersetzlich.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ihr Signierzertifikat verlieren, verlieren Sie Ihre Identität für Android-Geräte und Google Play. Das heißt, dass Sie, obwohl Sie den gleichen Code wie zuvor kompilieren und veröffentlichen, die neu kompilierten Anwendungen nicht nutzen können, um bereits veröffentlichte Anwendungen zu aktualisieren, da weder Android-Geräte noch Google Play Sie als den App-Urheber wiedererkennen.&lt;br /&gt;
Bewahren Sie mehrere Sicherungskopien Ihres Signierzertifikats auf unterschiedlichen Typen von Medien (auch auf Papier) an verschiedenen Orten auf. Und sorgen Sie dafür, dass diese Sicherungskopien sicher sind. Wenn Ihr Signierzertifikat von anderen als Ihnen selbst genutzt wird, können diese Leute Ihre Programme auf den Android-Geräten Ihrer Benutzer ändern.&lt;br /&gt;
Ausführliche Empfehlungen von der Android-Entwicklerseite zur Sicherung Ihres Signierzertifikats finden Sie unter http://developer.android.com/guide/publishing/app-signing.html#secure-key.&lt;br /&gt;
&lt;br /&gt;
Bevor die App veröffentlicht ist kann man die Signatur jederzeit wegwerfen und erneuern.&lt;br /&gt;
&lt;br /&gt;
=== Google Maps API Key ===&lt;br /&gt;
* Notwendig für Zugriffe auf den Google Maps Kartenserver. &lt;br /&gt;
* Alle Android Apps müssen mit einem digitalen Zertifikat signiert werden für das der Entwickler den private key hat. Damit werden die Apps auf dem Map-Server oder im PlayStore getrackt.&lt;br /&gt;
* Man benötigt einen Schlüssel für jedes Zertifikat&lt;br /&gt;
* In der Praxis erstellt man ein Zertifikat für jede App (theoretisch kann man auch mehrere mit einem Zertifikat signieren)&lt;br /&gt;
* Für die Entwicklung nutzt Eclipse ein Entwickler Zertifikat ohne API Key dies reicht nicht bei Apps die einen Maps API Key benötigen&lt;br /&gt;
=== Google Maps API Key erstellen ===&lt;br /&gt;
==== Google Play Services Installieren ====&lt;br /&gt;
Dieses SDK benötigt man um einen Key zu holen (Dieser Schritt muß nur einmal gemacht werden)&lt;br /&gt;
* Android SDK aus Eclipse oder über Terminal starten.(On Mac or Linux,  tools/ directory Befehl: android sdk)&lt;br /&gt;
* Im Android SDK Extras &amp;gt; Google Play services SDK installieren&lt;br /&gt;
==== App Zertifikat Fingerprint anzeigen ====&lt;br /&gt;
Es gibt Debug Zertifikate und Release Zertifikate. Das Debug Zertifikat wird von Eclipse automatisch beim Debuggen der App erstellt. Um den passenden Key zu bekommen braucht man den Fingerprint des gewünschten  Zertifikats.&lt;br /&gt;
===== Debug Zertifikat Fingerprint =====&lt;br /&gt;
Die Zertifikate kann man aus dem debug keystore file auslesen. Es nennt sich debug.keystore und wird beim ersten erstellen des Projekts erzeugt. Es befindet sich im gleichen Verzeichnis wie die Android Virtual Device (AVD) Dateien. Unter Mac ist das:&lt;br /&gt;
 ~/.android/&lt;br /&gt;
Windows Vista and Windows 7: &lt;br /&gt;
 C:\Users\your_user_name\.android\&lt;br /&gt;
In Eclipse kann man den Ort mit &lt;br /&gt;
 Windows &amp;gt; Prefs &amp;gt; Android &amp;gt; Build &lt;br /&gt;
Anzeigen lassen (dann kopieren und in den Finder kopieren.&lt;br /&gt;
&lt;br /&gt;
List the SHA-1 fingerprint im Terminal:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android&lt;br /&gt;
Ausgabe sieht etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Alias name: androiddebugkey&lt;br /&gt;
 Creation date: Jan 01, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4aa9b300&lt;br /&gt;
 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeile mit SHA1 enthält den fingerprint, eine Sequenz von 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Release Zertifikat anzeigen =====&lt;br /&gt;
Auch hier muß man das release certificate keystore file finden, dies ist jedoch nicht immer am gleichen Ort. Man kann einen Ort festlegen, wenn man das release build für die App macht. Wenn man es nicht macht bleibt die App unsigniert und man kann Sie beim Publizieren Signieren. Da wir aber den API Key brauchen geht das in diesem Fall nicht.&lt;br /&gt;
&lt;br /&gt;
Für das release Zertifikat braucht man auch den certificate&amp;#039;s alias und die Passwörter für den keystore und das Zertifikat.&lt;br /&gt;
&lt;br /&gt;
So kann man die Alias Liste für alle Keys im Keystore anzeigen:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -keystore your_keystore_name&lt;br /&gt;
Ersetze &amp;#039;&amp;#039;your_keystore_name&amp;#039;&amp;#039; mit dem fully-qualified Pfad und dem Namen des Keystore, inklusive der .keystore extension. Es wird nach dem keystore Passwort gefragt und danach die Liste angezeigt.&lt;br /&gt;
&lt;br /&gt;
Jetzt können wir folgendes eingeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keytool -list -v -keystore your_keystore_name -alias your_alias_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace your_keystore_name with the fully-qualified path and name of the keystore, including the .keystore extension. Replace your_alias_name with the alias that you assigned to the certificate when you created it.&lt;br /&gt;
&lt;br /&gt;
Caution: To protect your keystore and key, don&amp;#039;t enter the storepass or keypass arguments on the command line unless you&amp;#039;re confident of your computer&amp;#039;s security. For example, on a public computer, someone could look at your terminal window history or list of running processes, get the password, and then have write access to your signing certificate. This would allow that person to modify or replace your application with their own.&lt;br /&gt;
&lt;br /&gt;
You should see a display that is similar to this:&lt;br /&gt;
&lt;br /&gt;
 Alias name: &amp;lt;alias_name&amp;gt;&lt;br /&gt;
 Creation date: Feb 02, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4cc9b300&lt;br /&gt;
 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
The line that begins SHA1 contains the certificate&amp;#039;s SHA-1 fingerprint. The fingerprint is the sequence of 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Projekt in der Google APIs Console registrieren =====&lt;br /&gt;
and add the Maps API as a service for the project.&lt;br /&gt;
*Once you have a project set up, you can request one or more keys.&lt;br /&gt;
*Finally, you can add your key to your application and begin development.&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20032</id>
		<title>Android Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Android_Development&amp;diff=20032"/>
		<updated>2013-10-11T04:40:47Z</updated>

		<summary type="html">&lt;p&gt;79.240.26.138: /* Android Apps signieren und veröffentlichen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
* Android Developer Referenz von Google: http://developer.android.com/reference/packages.html&lt;br /&gt;
* http://www.vogella.com/articles/Android/article.html (umfassendes Tutorial gepflegt seit 2009 (Stand 2013))&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Maps]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Setting up PlayStore Service]]&lt;br /&gt;
&lt;br /&gt;
== Android Development - First Steps ==&lt;br /&gt;
[[Android Development - Hello World]]&lt;br /&gt;
&lt;br /&gt;
[[Android Development - User Interface programmieren]] (Layout anlegen)&lt;br /&gt;
&lt;br /&gt;
[[Android Development - Grundfunktionen Programmieren]] (Neue Activity starten, Intents, Button und Textfelder)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Android Entwicklungsumgebung ==&lt;br /&gt;
=== Eclipse und Android SDK ===&lt;br /&gt;
Es gibt ein angepasstes Eclipse Paket mit den Android Tools auf http://developer.android.com/sdk/installing/index.html, das ist der schnellste Weg. Im Folgenden ein Beispiel für die klassische Installation, bei der wir alle Schritte nacheinander durchführen.&lt;br /&gt;
&lt;br /&gt;
==== Benötigte Komponenten ====&lt;br /&gt;
Im Einzelnen benötigt man über eine Eclipse / Java IDE noch:&lt;br /&gt;
* ADT plugin (Android Developer Tools)&lt;br /&gt;
* Android SDK Tools&lt;br /&gt;
* Android Platform-tools&lt;br /&gt;
* The latest Android platform&lt;br /&gt;
* The latest Android system image for the emulator&lt;br /&gt;
&lt;br /&gt;
==== Eclipse Installation ====&lt;br /&gt;
http://help.eclipse.org/juno/index.jsp&lt;br /&gt;
&lt;br /&gt;
* Download Eclipse (z.B. Classic)&lt;br /&gt;
* Download und Installation des Java JDK (Java Entwickler SDK)&lt;br /&gt;
* Registrieren des JDK in Eclipse (Preferences &amp;gt; Java &amp;gt; Installed JREs&lt;br /&gt;
==== Android SDK installieren ====&lt;br /&gt;
* Android SDK downloaden und installieren (benötigt JDK) Beim ersten Start fragt der SDK Manager welche Tools für welche Android Plattform man nachladen möchte. Wenn man mit Eclipse arbeitet sollte man den &amp;#039;&amp;#039;&amp;#039;Manager abbrechen&amp;#039;&amp;#039;&amp;#039; und dies später über das Eclipse Plugin machen.&lt;br /&gt;
==== ADT Plugin für Eclipse installieren ====&lt;br /&gt;
http://developer.android.com/sdk/installing/installing-adt.html&lt;br /&gt;
&lt;br /&gt;
* In Eclipse &amp;#039;&amp;#039;Help &amp;gt; Install New Software&amp;#039;&amp;#039;.&lt;br /&gt;
* Add Repository Dialog &amp;quot;&amp;#039;&amp;#039;ADT Plugin&amp;#039;&amp;#039;&amp;quot; als Name und folgende URL angeben:&lt;br /&gt;
 https://dl-ssl.google.com/android/eclipse/&lt;br /&gt;
Bei Problemen mit der Verbindunghttp verwenden.&lt;br /&gt;
* Developer Tools auswählen und die Installation fertigstellen.&lt;br /&gt;
* Nach der Installation Eclipse neu starten.&lt;br /&gt;
* Nach dem Neustart von Eclipse fragt das Plugin nach dem Ort des SDK (wenn er es noch nicht gefunden hat)&lt;br /&gt;
* Über Windows SDK-Manager können wir jetzt jederzeit die restlichen Android Komponenten laden die wir benötigen.&lt;br /&gt;
&lt;br /&gt;
== Android Debugging ==&lt;br /&gt;
=== Lint ===&lt;br /&gt;
=== Hierarchy Viewer ===&lt;br /&gt;
Eclipse View zum testen der Layout Hierarchie&lt;br /&gt;
&lt;br /&gt;
== Android Apps signieren und veröffentlichen ==&lt;br /&gt;
=== Kurzanleitung ===&lt;br /&gt;
Zur Veröffentlichung einer Android App muß man:&lt;br /&gt;
* Die App Signieren (Zertifikat erstellen das für den Release gültig sein soll)&lt;br /&gt;
* Den SHA Fingerprint des Zertifikats an Google übermitteln (braucht man auch wenn man diverse Google APIs wie die Map API im Code nutzen will).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sicherheitshinweise ===&lt;br /&gt;
http://developer.android.com/guide/topics/security/security.html&lt;br /&gt;
&lt;br /&gt;
=== Einführung===&lt;br /&gt;
Apps bekommen ein Sicherheitszertifikat mit dem sie vor dem veröffentlichen signiert werden. Diese &amp;#039;&amp;#039;&amp;#039;Signatur erstellt i.d.r. der Entwickler selbst&amp;#039;&amp;#039;&amp;#039;. Beim Debuggen erstellt Eclipse automatisch ein Testzertifikat. Für manche Anwendungen die einen API Key von Google benötigen muß man schon frühzeitig ein Release Zertifikat erstellen, das man bei Google Registrieren kann.&lt;br /&gt;
&lt;br /&gt;
=== Kurzanleitung: Zertifikat und Fingerprint auf Eclipse unter Mac ===&lt;br /&gt;
In Eclipse mit Mac OSX ist das keytool bereits enthalten:&lt;br /&gt;
&lt;br /&gt;
 File -&amp;gt; Export -&amp;gt; Android -&amp;gt; Export Android Application -&amp;gt; click next -&amp;gt; select your project -&amp;gt; click next -&amp;gt; new keystore&lt;br /&gt;
&lt;br /&gt;
Am Ende werden die Fingerprints angezeigt. Man kann diese aber auch anzeigen wenn man im Terminal in das Keystore-Verzeichnis wechselt und folgendes eingibt:&lt;br /&gt;
 keytool -list -v -keystore &amp;quot;keyStoreName&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== API Keys holen ====&lt;br /&gt;
Auf https://code.google.com/apis/console/ registriert man dann alle Apps die zu diesem Fingerprint / dieser Signierung gehören. Dazu legt man ein Projekt (beliebiger Name) an und klickt dann unter API Access auf &amp;#039;&amp;#039;&amp;#039;Generate new Android Key&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Dort legt man die SHA Fingerprints und den zugehörigen Package Name der App ab.&lt;br /&gt;
&lt;br /&gt;
===Ein selbst signiertes Release Zertifikat erstellen ===&lt;br /&gt;
&lt;br /&gt;
Quelle: Buch Android Programmierung&lt;br /&gt;
&lt;br /&gt;
Sind Sie bereit, Ihren Code für die Veröffentlichung zu signieren? Zunächst erstellen Sie mit dem keytool-Befehl einen privaten Schlüssel:&lt;br /&gt;
 keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 50000 &lt;br /&gt;
Für my-release-key können Sie einen Namen Ihrer Wahl angeben und für alias_name einen Alias Ihrer Wahl. Die Parameter -keysize und -validity sollten so bleiben wie im Code oben.&lt;br /&gt;
&lt;br /&gt;
==== Sicherheit ====&lt;br /&gt;
Sobald eine App mit dem Zertifikat veröffentlicht ist wird das Zertifikat unersetzlich.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ihr Signierzertifikat verlieren, verlieren Sie Ihre Identität für Android-Geräte und Google Play. Das heißt, dass Sie, obwohl Sie den gleichen Code wie zuvor kompilieren und veröffentlichen, die neu kompilierten Anwendungen nicht nutzen können, um bereits veröffentlichte Anwendungen zu aktualisieren, da weder Android-Geräte noch Google Play Sie als den App-Urheber wiedererkennen.&lt;br /&gt;
Bewahren Sie mehrere Sicherungskopien Ihres Signierzertifikats auf unterschiedlichen Typen von Medien (auch auf Papier) an verschiedenen Orten auf. Und sorgen Sie dafür, dass diese Sicherungskopien sicher sind. Wenn Ihr Signierzertifikat von anderen als Ihnen selbst genutzt wird, können diese Leute Ihre Programme auf den Android-Geräten Ihrer Benutzer ändern.&lt;br /&gt;
Ausführliche Empfehlungen von der Android-Entwicklerseite zur Sicherung Ihres Signierzertifikats finden Sie unter http://developer.android.com/guide/publishing/app-signing.html#secure-key.&lt;br /&gt;
&lt;br /&gt;
Bevor die App veröffentlicht ist kann man die Signatur jederzeit wegwerfen und erneuern.&lt;br /&gt;
&lt;br /&gt;
=== Google Maps API Key ===&lt;br /&gt;
* Notwendig für Zugriffe auf den Google Maps Kartenserver. &lt;br /&gt;
* Alle Android Apps müssen mit einem digitalen Zertifikat signiert werden für das der Entwickler den private key hat. Damit werden die Apps auf dem Map-Server oder im PlayStore getrackt.&lt;br /&gt;
* Man benötigt einen Schlüssel für jedes Zertifikat&lt;br /&gt;
* In der Praxis erstellt man ein Zertifikat für jede App (theoretisch kann man auch mehrere mit einem Zertifikat signieren)&lt;br /&gt;
* Für die Entwicklung nutzt Eclipse ein Entwickler Zertifikat ohne API Key dies reicht nicht bei Apps die einen Maps API Key benötigen&lt;br /&gt;
=== Google Maps API Key erstellen ===&lt;br /&gt;
==== Google Play Services Installieren ====&lt;br /&gt;
Dieses SDK benötigt man um einen Key zu holen (Dieser Schritt muß nur einmal gemacht werden)&lt;br /&gt;
* Android SDK aus Eclipse oder über Terminal starten.(On Mac or Linux,  tools/ directory Befehl: android sdk)&lt;br /&gt;
* Im Android SDK Extras &amp;gt; Google Play services SDK installieren&lt;br /&gt;
==== App Zertifikat Fingerprint anzeigen ====&lt;br /&gt;
Es gibt Debug Zertifikate und Release Zertifikate. Das Debug Zertifikat wird von Eclipse automatisch beim Debuggen der App erstellt. Um den passenden Key zu bekommen braucht man den Fingerprint des gewünschten  Zertifikats.&lt;br /&gt;
===== Debug Zertifikat Fingerprint =====&lt;br /&gt;
Die Zertifikate kann man aus dem debug keystore file auslesen. Es nennt sich debug.keystore und wird beim ersten erstellen des Projekts erzeugt. Es befindet sich im gleichen Verzeichnis wie die Android Virtual Device (AVD) Dateien. Unter Mac ist das:&lt;br /&gt;
 ~/.android/&lt;br /&gt;
Windows Vista and Windows 7: &lt;br /&gt;
 C:\Users\your_user_name\.android\&lt;br /&gt;
In Eclipse kann man den Ort mit &lt;br /&gt;
 Windows &amp;gt; Prefs &amp;gt; Android &amp;gt; Build &lt;br /&gt;
Anzeigen lassen (dann kopieren und in den Finder kopieren.&lt;br /&gt;
&lt;br /&gt;
List the SHA-1 fingerprint im Terminal:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android&lt;br /&gt;
Ausgabe sieht etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Alias name: androiddebugkey&lt;br /&gt;
 Creation date: Jan 01, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4aa9b300&lt;br /&gt;
 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeile mit SHA1 enthält den fingerprint, eine Sequenz von 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Release Zertifikat anzeigen =====&lt;br /&gt;
Auch hier muß man das release certificate keystore file finden, dies ist jedoch nicht immer am gleichen Ort. Man kann einen Ort festlegen, wenn man das release build für die App macht. Wenn man es nicht macht bleibt die App unsigniert und man kann Sie beim Publizieren Signieren. Da wir aber den API Key brauchen geht das in diesem Fall nicht.&lt;br /&gt;
&lt;br /&gt;
Für das release Zertifikat braucht man auch den certificate&amp;#039;s alias und die Passwörter für den keystore und das Zertifikat.&lt;br /&gt;
&lt;br /&gt;
So kann man die Alias Liste für alle Keys im Keystore anzeigen:&lt;br /&gt;
&lt;br /&gt;
 keytool -list -keystore your_keystore_name&lt;br /&gt;
Ersetze &amp;#039;&amp;#039;your_keystore_name&amp;#039;&amp;#039; mit dem fully-qualified Pfad und dem Namen des Keystore, inklusive der .keystore extension. Es wird nach dem keystore Passwort gefragt und danach die Liste angezeigt.&lt;br /&gt;
&lt;br /&gt;
Jetzt können wir folgendes eingeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keytool -list -v -keystore your_keystore_name -alias your_alias_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace your_keystore_name with the fully-qualified path and name of the keystore, including the .keystore extension. Replace your_alias_name with the alias that you assigned to the certificate when you created it.&lt;br /&gt;
&lt;br /&gt;
Caution: To protect your keystore and key, don&amp;#039;t enter the storepass or keypass arguments on the command line unless you&amp;#039;re confident of your computer&amp;#039;s security. For example, on a public computer, someone could look at your terminal window history or list of running processes, get the password, and then have write access to your signing certificate. This would allow that person to modify or replace your application with their own.&lt;br /&gt;
&lt;br /&gt;
You should see a display that is similar to this:&lt;br /&gt;
&lt;br /&gt;
 Alias name: &amp;lt;alias_name&amp;gt;&lt;br /&gt;
 Creation date: Feb 02, 2013&lt;br /&gt;
 Entry type: PrivateKeyEntry&lt;br /&gt;
 Certificate chain length: 1&lt;br /&gt;
 Certificate[1]:&lt;br /&gt;
 Owner: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Issuer: CN=Android Debug, O=Android, C=US&lt;br /&gt;
 Serial number: 4cc9b300&lt;br /&gt;
 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033&lt;br /&gt;
 Certificate fingerprints:&lt;br /&gt;
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9&lt;br /&gt;
      SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75&lt;br /&gt;
      Signature algorithm name: SHA1withRSA&lt;br /&gt;
      Version: 3&lt;br /&gt;
The line that begins SHA1 contains the certificate&amp;#039;s SHA-1 fingerprint. The fingerprint is the sequence of 20 two-digit hexadecimal numbers separated by colons.&lt;br /&gt;
&lt;br /&gt;
===== Projekt in der Google APIs Console registrieren =====&lt;br /&gt;
and add the Maps API as a service for the project.&lt;br /&gt;
*Once you have a project set up, you can request one or more keys.&lt;br /&gt;
*Finally, you can add your key to your application and begin development.&lt;/div&gt;</summary>
		<author><name>79.240.26.138</name></author>
	</entry>
</feed>