オンになっている場合には位置情報の更新を受信していませんが、私のコードは、ユーザーに入力を要求して、私は(予想通り)しかし、GPSがある場合Androidの位置情報サービス(GPS):GPSがオンになっていない場合はGPSがすでに
場所の更新を取得します既にオンになっていると、私は場所の更新を取得しません。 start()メソッドがlogcatで呼び出されているのが見えますが、update()メソッドが呼び出されています。
private static final long MIN_UPDATE_DISTANCE = 6;
private static final String TAG = LocationTracker.class.getSimpleName();
// The minimum time between updates in milliseconds
private static final long MIN_UPDATE_TIME = 1000 * 1;//==update every 1 seconds
....
public void start(){
Log.e(TAG, "start");
lm = (LocationManager) MyApp.getAppContext().getSystemService(Context.LOCATION_SERVICE);//let's see if getting LM again helps
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_UPDATE_TIME, MIN_UPDATE_DISTANCE, this);
return;
}
public void onLocationChanged(Location newLoc) {
Log.e(TAG, "onLocationChanged");
}
ここでEDIT
public static boolean isLocationServicesEnabled(){
Log.e(TAG,"isLocationServicesEnabled");
String locationProvider = Settings.Secure.getString(
MyApp.getAppContext().getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);//note: this is deprecated
if (locationProvider == null || locationProvider.equalsIgnoreCase("")) {
return false;
}
return true;
}
public void stop(){
Log.e(TAG,"stopping GPS");
lm.removeUpdates(this);
isRunning = false;
listener = null;
lm = null;
}
は、私はそれらを呼び出す午前方法です。ここで
if(isLocationServicesEnabled){
stop();
start()
}
はGradleの
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.XX.XX.main"
minSdkVersion 19
targetSdkVersion 21
versionCode 15
}
これはうまくいくはずです。あなたの最短距離が変更されたことを確認するためにあなたの場所を変更してください –
マニフェストに追加したアクセス許可 –