Comment utiliser Android LocationManager et l'Auditeur
Je ne suis pas du tout avoir la chance de recevoir des données à partir du GPS à l'aide du code ci-dessous, et je ne suis pas sûr de ce que je fais mal, il me semble que mon code correspond à tout ce que je vois en ligne. j'aimerais éventuellement l'ajouter à un service d'arrière-plan pour ouvrir une session coordonnées gps, même lorsque l'activité n'est pas visible, ou si d'autres applications sont ouvertes et si la vitesse est supérieure à un certain montant défini, mais à ce point je ne peux même pas obtenir toutes les données à afficher. je suis relativement nouveau à android, mais je ne peux pas comprendre ce que je fais mal?
public class MainActivity extends Activity {
TextView textView;
MyLocationListener myLocationListener;
LocationManager lm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.textView = (TextView)findViewById(R.id.message);
addLocationListener();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private void addLocationListener()
{
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria c = new Criteria();
c.setAccuracy(Criteria.ACCURACY_FINE);
final String PROVIDER = lm.getBestProvider(c, true);
this.myLocationListener = new MyLocationListener();
this.lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0L, 0.0F, this.myLocationListener);
//lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0L, 0.0F, myLocationListener);
Log.d("LOC_SERVICE", "Service RUNNING!");
}
public void updateLocation(Location location)
{
double latitude, longitude;
latitude = location.getLatitude();
longitude = location.getLongitude();
int mph = convertSpeed(location.getSpeed());
Log.d("LOC_SERVICE", "mph: "+mph);
this.textView.setText(this.textView.getText()+"\n"+"lat: "+latitude+" lng: "+longitude+" mph: "+mph);
}
private int convertSpeed(float speed) {
int mph =(int)(2.236936D * speed);
return mph;
}
class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
Log.d("LOC_SERVICE", "Listener RUNNING!");
updateLocation(location);
}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
}
Je ne vois rien de mal, juste que vous avez besoin pour supprimer l'emplacement auditeur dans
onDestroy
OriginalL'auteur steve-ccnc | 2014-01-13
Vous devez vous connecter pour publier un commentaire.
Essayer suivants du code
Maintenant mettre ces ligne dans votre activité -
oui il wil faire la différence ,comment vous voulez qu'il soit exécuter ses jusqu'à vous exigence.
il pourrait être mieux si vous vous mettez à onCreate() de la méthode.de voter si vous obtenez résoudre votre problème afin que le prochain utilisateur peut se résoudre grâce.
OriginalL'auteur Poison
Vous devez utiliser la permission d'abord:
À côté de vous à l'intérieur onCreate() utilisation d'une méthode de code ci-dessous pour avoir accès au GPS.
Maintenant, si le GPS n'est pas activé, alors vous devez vous référer code ci-dessous. Pour des explications détaillées, vous pouvez consulter comment faire pour obtenir[LIEN MORT] [emplacement actuel dans android]Un tutoriel.
Ici, nous avons utilisé les intentions de rediriger l'utilisateur à l'emplacement de la page des paramètres de sorte qu'il peut activer le GPS sous les paramètres de localisation.
OriginalL'auteur amit duhan
vous pouvez atteindre cet objectif facilement. vous devez écrire le code de l'activité principale. et la Principale activité met en œuvre Locationlistner interface. et la surcharge de ses quatre méthodes. ici, je suis de la récupération de mon Longitude et Latitide des coordonnées dans un textview lors du démarrage de l'application. et vous devez donner l'autorisation pour accéder à l'emplacement de votre fichier de manifeste.
comme dans le cadre de mon code.
et vous devez donner l'autorisation de ce genre dans le fichier de manifeste.
Et dernier avertissement.
vous devez donner l'autorisation à votre application et commencer de données mobiles et GPS avant d'ouvrir l'application. soit il sera écrasé.
que c'est.
espérons qu'il saura vous aider. 🙂
OriginalL'auteur nisarg parekh