サービスでは、次のようなものを使用できます。
private void startPositionListener() {
if (mLocationManager == null) {
// Get the location manager
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
}
try {
gpsEnabled = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
networkEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch (Exception e) {
Log.e(TAG, e.getLocalizedMessage());
}
// Register the listener with the Location Manager to receive location updates
if(gpsEnabled) {
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 6000, 1, mGpsListener);
Log.d(TAG, "GPS Listener started.");
} else if(networkEnabled) { // Checking for GSM
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 6000, 1, mNetworkListener);
Log.d(TAG, "Network Listener started.");
}
}
WheremNetworkListener
とmGpsListener
are は を実装するクラスですLocationListener
。記入しなければならない唯一の方法はonLocationChanged(Location)
(サービス内の位置データを取得する場所です) です。次のような作業が終わったら、これらのオブジェクトの更新を停止することを忘れないでください。
private void stopPositionListner() {
if (mLocationManager != null) {
mLocationManager.removeUpdates(mGpsListener);
mLocationManager.removeUpdates(mNetworkListener);
Log.d(TAG, "Position Listener stopped.");
}
}