2010-10-05 24 views
1

c'est ma première question:Android alerte de proximité ne soit pas tiré

Je suis en train de configurer des alertes de proximité qui seront alimentent à partir d'une base de données et fournisseur webservice; mais j'ai un problème à configurer une simple alerte de proximité pour les tests. Je parviens à créer l'alerte mais elle ne se déclenche jamais, j'essaie seulement dans l'émulateur pour l'instant et je ne sais pas si j'ai besoin de code supplémentaire pour déclencher les alertes.

J'ai lu quelque part que le fournisseur GPS est désactivé afin que le fournisseur de réseau puisse être utilisé pour déclencher les alertes sur l'émulateur.

Mon code ressemble à ceci:

Proximité déclaration intention

private String proximityIntentAction = new String("gpsdelivery.gpship.getLocation.GPS_PROXIMITY_ALERT");  

intérieur onStart() où les paramètres des alertes sont définies

IntentFilter intentFilter = new IntentFilter(proximityIntentAction); 
registerReceiver(new ProximityAlert(), intentFilter); 
setProximityAlert(45.150344, 9.999815, -1);   

Proximité fonction d'alerte où les alertes sont créé

private void setProximityAlert(double lat, double lon, int requestCode) 
{ 
    // 100 meter radius 
    float radius = 100f; 
    // Expiration is 10 Minutes 
    long expiration = 600000; 
    LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

    Intent intent = new Intent(proximityIntentAction); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
    locManager.addProximityAlert(lat, lon, radius, expiration, pendingIntent); 

} 

Et enfin ma proximité classe alerte avec le récepteur de diffusion

public class ProximityAlert extends BroadcastReceiver 
    { 
     @Override 
     public void onReceive(Context context, Intent intent) 
     { 
      Log.v("SomeTag","Proximity alert received"); 

     } 

    }  

S'il vous plaît laissez-moi savoir ce que je manque ou ce que je fais mal. Merci d'avance, tout code source serait apprécié.

+0

Pourquoi supposez-vous que vous devriez diffuser une alerte de proximité? Avez-vous défini un emplacement dans l'émulateur dans DDMS? – Falmarri

+0

Je pensais que le récepteur de diffusion était nécessaire pour effectuer l'action le veut après le déclenchement d'une alerte de proximité, du moins c'est comme ça que je l'ai vu dans d'autres exemples. J'ai défini plusieurs emplacements dans le rayon de proximité dans DDMS mais l'alerte ne se déclenche jamais, j'ai reçu ce message d'erreur: 10-07 01: 22: 50.681: ERROR/ActivityThread (796): android.app.IntentReceiverLeaked: Activité gpsdelivery.gpship .getLocation a divulgué IntentReceiver [email protected] qui a été enregistré à l'origine ici. Vous manquez un appel à unregisterReceiver()? – flavs

Répondre

0

Eh bien, je crois que votre setProximityAlert(45.150344, 9.999815, -1); est incorrecte. Plus précisément, votre -1. Il ne contient pas les informations nécessaires dans le locManager.addProximityAlert(lat, lon, radius, expiration, pendingIntent);.