我認爲這將是超級簡單的 - 但這是花了更長的時間比它應該。當Android意圖開始時獲取GPS
我只是想獲得GPS座標去logcat,這就是字面意思。
意圖着火。每次都會出現「Intent Fired」消息。該應用程序拒絕去位置更改事件。
如果有人可以看看,讓我知道我失敗的地方,這將是超級讚賞。
public class MyReceiver extends IntentService implements LocationListener {
private LocationManager locationManager;
public MyReceiver() {
super("MyReceiver");
}
protected void onHandleIntent(Intent intent) {
Log.i("DebugMe", "Intent Fired");
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
}
public void onLocationChanged(Location location) {
String lat = String.valueOf(location.getLatitude());
String lon = String.valueOf(location.getLongitude());
Log.i("DebugMe", lat + " " + lon);
locationManager.removeUpdates(this);
}
public void onProviderDisabled(String provider) {
Log.d("DebugMe ", "Disabled");
}
public void onProviderEnabled(String provider) {
Log.d("DebugMe","Enabled");
}
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d("DebugMe","Status");
}
}
謝謝
「當您獲得Location對象時,使用標準Service和執行stopSelf。」 - 恕我直言,這是更好的方法。 – CommonsWare
它當然是 – maciekjanusz
嗯,感謝上帝,我問 - 我永遠不會想到我自己。爲什麼我使用意向服務的原因是因爲這個應用程序需要能夠從adb採取命令,這個解決方案允許我從筆記本電腦上做「adb shell am startservice ...」...有沒有另外一種方法來實現GPS從adb cmd行查找? – Nefariis