Das Beispiel in diesem Artikel beschreibt, wie Android GPS verwendet, um den geografischen Standort des Benutzers zu ermitteln und Standortänderungen zu überwachen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
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); } }
Aus Gründen der Sicherheit des Android-Systems reicht es nicht aus, nur die Aktivitätsdatei zu ändern. Für Dienste wird ein Autorisierungsmechanismus verwendet. Daher müssen Sie die Datei manifest.xml ändern.
<?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>
Viele Freunde haben möglicherweise Fragen zum Debugging-Problem der GPS-Positionierung auf der virtuellen Android-Maschine Tatsächlich kann es simuliert werden, indem Sie die virtuelle Maschine starten und dann DDMS öffnen. In der Gerätespalte auf der linken Seite wird dynamisch der Startstatus verschiedener Dienste auf der virtuellen Maschine angezeigt In der Emulatorzeile unter der Spalte „Einzelmaschinengerät“ werden Sie feststellen, dass sich unter der Emulatorsteuerung eine Standortsteuerung befindet. Öffnen Sie die Registerkarte „Manuell“, haha. Ich glaube, Sie haben den Breiten- und Längengrad gesehen kann es ändern. Führen Sie Ihr Programm aus und klicken Sie dann auf die Schaltfläche „Senden“ mit dem Breiten- und Längengrad, den Sie gerade eingestellt haben, um den Empfang des neuen geografischen Standorts zu simulieren.
In dieser Demo habe ich Log verwendet, um den Status anzuzeigen. Es ist sehr nützlich, sich an meine anderen zu wenden Um zu lernen, wie man Log geschickt nutzt, empfehle ich Ihnen, nach den Lehrvideos von sundyzlh zu suchen.
Bezüglich der Verwendung von LOG lesen Sie bitte den vorherigen Artikel „Detaillierte Erläuterung der Android-Programmierung zur Demonstration einer Aktivitätslebenszyklusinstanz basierend auf Protokoll“
Der endgültige Effekt ist wie folgt:
Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der Android-Programmierung befassen.
Weitere verwandte Artikel darüber, wie Android GPS verwendet, um den geografischen Standort des Benutzers zu ermitteln und Standortänderungen zu überwachen, finden Sie auf der chinesischen PHP-Website!