2013-03-12 2 views
-2

J'ai le code suivant - enter code here
using System; en utilisant System.Collections.Generic; en utilisant System.Text; en utilisant Android.App; en utilisant Android.Content; en utilisant Android.Runtime; en utilisant Android.Views; en utilisant Android.Widget; en utilisant Android.OS; en utilisant Android.Locations; en utilisant Android.Bluetooth;Android OnLocationChanged n'étant jamais appelé

namespace GetCurrentLocation 
{ 
    [Activity(Label = "Get Current Location", MainLauncher = true, Icon = "@drawable/icon")] 
    public class Activity1 : Activity, ILocationListener 
    { 
     LocationManager _locMgr ; 
     String oBestProvider; 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 
      _locMgr = GetSystemService(Context.LocationService) as LocationManager; 

      // Set our view from the "main" layout resource 
      SetContentView(Resource.Layout.UI); 
      StringBuilder strLocations = new StringBuilder(); 
      // Get our button from the layout resource, 
      // and attach an event to it 
      Button button = FindViewById<Button>(Resource.Id.btnGetLocation); 
      int i; 
      var locationText = 
       FindViewById<TextView>(Resource.Id.txtLocation); 

       Android.Locations.Location oLocation; 

      oLocation = _locMgr.GetLastKnownLocation (Context.LocationService); 
      IList<String> oLocationProviders = _locMgr.GetProviders(true); 

      //Location location; 
      button.Click += delegate { 
       if(oLocationProviders != null) 
        { 

       _locMgr.RequestLocationUpdates(oLocationProviders[0], 2000, 1, this); 
       _locMgr.RequestLocationUpdates(oLocationProviders[1], 2000, 1, this); 


        } 
        else{ 

        locationText.Text ="No Provider Found"; 
        } 

      }; 

     } 



     protected override void OnResume() { 
      base.OnResume(); 

     } 

     protected override void OnPause() { 
      base.OnPause(); 
      _locMgr.RemoveUpdates(this); 
     } 

     public void OnLocationChanged (Location location) 
     { 

      var locationText = 
        FindViewById<TextView> (Resource.Id.txtLocation); 
      if (location != null) { 
       locationText.Text = String.Format ("Latitude = {0}, Longitude = {1}", 
        location.Latitude, location.Longitude); 
      } 
     } 

     public void OnProviderDisabled(string provider) 
     { 

     } 

     public void OnProviderEnabled(string provider) 
     { 
     } 

     public void OnStatusChanged(string provider, Availability status, Bundle extras) 
     { 
     } 

    } 
} 

J'ai essayé d'utiliser GetBestProvider/GetProviders/RequestLocationUpdates/GetLastKnownLocation. Je ne suis pas capable de continuer. Est-ce que quelqu'un peut me guider pourquoi mon OnLocationUpdates n'est jamais appelé? Je ne suis pas non plus en mesure d'utiliser le mot clé Override sur cette fonction même si la classe Activity implémente l'interface ILocationListener. S'il vous plaît aider ..... Et aussi juste pour votre info, j'essaie d'exécuter ce code sur la version d'essai Emulator AVD For Nexus 5 par Google.

+0

Je pense que vous vouliez dire Nexus 4/Nexus S. ** Nexus 5 ** n'est pas encore disponible. ;-) –

Répondre

0

Si vous exécutez l'émulateur, onLocationChanged ne sera jamais appelé tant que vous ne fournirez pas l'emplacement à partir de DDMS. A partir de DDMS, vous devez indiquer la latitude et la longitude pour appeler la méthode désirée.

Veuillez vérifier le code sur le périphérique réel dans la zone ouverte.

+0

J'ai téléchargé ma version d'essai du Xamarin Store où il est dit que la version gratuite fournira un studio Xamarin qui est MonoDevelop et la possibilité de déployer sur le périphérique. store.xamarin.com ..... Je ne peux pas utiliser la possibilité de déployer sur l'appareil au lieu d'acheter le Monodevelop complet. – Manisha

+0

utiliser l'application faux gps du magasin de jeu –

Questions connexes