Maison  >  Article  >  Java  >  Comment Android utilise le GPS pour obtenir la position géographique de l'utilisateur et surveiller les changements de position

Comment Android utilise le GPS pour obtenir la position géographique de l'utilisateur et surveiller les changements de position

高洛峰
高洛峰original
2017-01-07 15:13:291412parcourir

L'exemple de cet article décrit comment Android utilise le GPS pour obtenir la position géographique de l'utilisateur et surveiller les changements de position. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

LocationActivity.java

/* LocationActivity.java
 * @author octobershiner
 * 2011 7 22
 * SE.HIT
 * 一个演示定位用户的位置并且监听位置变化的代码
 * */
package uni.location;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.util.Log;
import android.widget.TextView;
public class LocationActivity extends Activity {
 /** Called when the activity is first created. */
 //创建lcoationManager对象
 private LocationManager manager;
 private static final String TAG = "LOCATION DEMO";
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //获取系统的服务,
  manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
  Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
  //第一次获得设备的位置
  updateLocation(location);
  //重要函数,监听数据测试
  manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 6000, 10,
   locationListener);
 }
 /*此处更新一下,当activity不处于活动状态时取消GPS的监听*/
  public void onPause(){
  super.onPause();
  locationManager.removeListener(locationListener);
 }
 //创建一个事件监听器
 private final LocationListener locationListener = new LocationListener() {
   public void onLocationChanged(Location location) {
   updateLocation(location);
   }
   public void onProviderDisabled(String provider){
    updateLocation(null);
    Log.i(TAG, "Provider now is disabled..");
   }
   public void onProviderEnabled(String provider){
    Log.i(TAG, "Provider now is enabled..");
   }
   public void onStatusChanged(String provider, int status,Bundle extras){ }
 };
//获取用户位置的函数,利用Log显示
 private void updateLocation(Location location) {
   String latLng;
   if (location != null) {
   double lat = location.getLatitude();
   double lng = location.getLongitude();
   latLng = "Latitude:" + lat + " Longitude:" + lng;
   } else {
   latLng = "Can't access your location";
   }
   Log.i(TAG, "The location has changed..");
   Log.i(TAG, "Your Location:" +latLng);
 }
}

La seule modification du fichier d'activité ne suffit pas, en raison de la sécurité du système Android, un mécanisme d'autorisation est utilisé pour les services. Par conséquent, vous devez modifier le fichier manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="uni.location"
  android:versionCode="1"
  android:versionName="1.0">
 <uses-sdk android:minSdkVersion="8" />
 <application android:icon="@drawable/icon" android:label="@string/app_name"> 
  <activity android:name=".LocationActivity"
     android:label="@string/app_name">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
 </application>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

De nombreux amis peuvent avoir des questions, c'est-à-dire le problème de débogage du positionnement GPS sur la machine virtuelle Android. en fait, cela peut être simulé. Vous démarrez la machine virtuelle puis ouvrez DDMS. Dans l'interface, la colonne de périphérique de gauche affichera dynamiquement l'état de démarrage des différents services sur la machine virtuelle. Une fois la machine virtuelle déverrouillée, accédez à. la ligne de l'émulateur sous la colonne du périphérique à machine unique. À ce moment, vous constaterez qu'il y a un contrôle de localisation sous le contrôle de l'émulateur, ouvrez l'onglet manuel à l'intérieur, haha ​​​​​​je crois que vous avez vu la latitude et la longitude, vous. peut le changer. Exécutez votre programme, puis cliquez sur le bouton d'envoi avec la latitude et la longitude que vous venez de définir pour simuler la réception du nouvel emplacement géographique.

Comment Android utilise le GPS pour obtenir la position géographique de lutilisateur et surveiller les changements de position

Dans cette démo, j'ai utilisé Log pour afficher le statut. Il est recommandé d'utiliser cette méthode. Elle est très utile. Les amis qui souhaitent en savoir plus peuvent se référer à mes autres. article. Pour apprendre à utiliser Log habilement, je vous recommande de rechercher les vidéos pédagogiques de Sundyzlh.

Concernant l'utilisation de LOG, veuillez vous référer à l'article précédent « Explication détaillée de la programmation Android pour démontrer une instance de cycle de vie d'activité basée sur le journal »

L'effet final est le suivant :

Comment Android utilise le GPS pour obtenir la position géographique de lutilisateur et surveiller les changements de position

J'espère que cet article sera utile à tout le monde dans la programmation Android.

Pour plus d'articles sur la façon dont Android utilise le GPS pour obtenir la position géographique de l'utilisateur et surveiller les changements de position, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn