Android: registrieren eines passiven LocationListener im Manifest?
brauche ich zum Empfang von gps-Positionsbestimmungen mit adndroid, aber ich will nicht, das Gerät zu registrieren, die LocationListener explizit in der Tätigkeit code oder so... also ich will zu registrieren, die LocationListener direkt in der Manifest-Datei.
Leider funktioniert das nicht 🙁 Hier mein code:
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<receiver android:name=".GPSLocationListener" android:enabled="true">
<intent-filter>
<action android:name="android.location.LocationManager.KEY_LOCATION_CHANGED" />
</intent-filter>
</receiver>
während mein listener sieht so aus:
public class GPSLocationListener implements LocationListener
{
public void onLocationChanged(Location location)
{
Log.d(Config.LOGTAG, "GPSLocationListener.java: GPS LOCATION UPDATE CAUGHT");
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
}
aber egal was ich mache, ich nicht geht der emulator zu fangen, die neue (Pseudo -) Lage ich push via DDMS... 🙁
jemand weiß, wie man mit dieser arbeiten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf eine Tief Tauchen Sie ein in Lage. Reto Meier erläutert, wie die Registrierung eines Dienstes als Empfänger eine passive LocationUpdate über ein PendingIntent.
Der wichtigste Teil ist nicht die requestLocation update-Methoden, die ein listener-Objekt, sondern verwenden Sie die Methoden, die erhalten eine PendingIntent. Auf diese Weise, selbst wenn alle Aktivitäten abgeschlossen sind im moment ein gps oder Speicherort im Netzwerk empfangen wird, die PendingIntent wird gefeuert und beginnt Ihren Dienst.
Reto Meier verwendet einen Broadcast-Receiver für android.Absicht.Aktion.BOOT_COMPLETED, der prüft, ob die app tun sollten, Standort-updates im hintergrund und fordert dann den Standort updates mit den PendingIntent.
Den Standort-manager nicht übertragen wird der Standort aktualisiert. Sie haben auf Anfrage Ort-updates programmgesteuert.
Abgesehen davon, dass der Empfänger die Erklärung in dem manifest für ein
BroadcastReceiver
IhreLocationListener
ist nicht einBroadcastReceiver
. Dies bedeutet, wenn jemand geschickt ein braodcast gefunden, die Ihren filter, würden Sie einen "type mismatch", wenn die Klasse loader versucht zu instanziierenBroadcastReceiver
.Versuchen Sie die Registrierung ein pending intent mit den LocationManager.requestLocationUpdates () - Methode:
Deklarieren Sie außerdem einen Empfänger, der empfängt "Unique_Broadcast_Message".
Wenn Sie möchten, verwenden Sie eine Bibliothek, dann check this out. Es nutzt passive location-Anbieter und stellt es per Broadcast Receiver. Sehr einfach zu bedienen.
Wenig Fluffy-Ort-Bibliothek für Android