2012-04-11 3 views
1

Google지도와 GPS를 다루는 Android 앱을 개발 중입니다. 지도를 표시하는 근접 경보 애플 리케이션은 사용자로부터 터치를 받아들이고 그 위치에 대한 경보를 설정합니다. 목적지까지의 거리를 알려주는 EditText를 추가했습니다. 그러나 사용자가 무엇을 입력하든 앱은 그 값을 2km로 취합니다. 그것은 GPS 대신 셀 타워 정보를 사용하기 때문입니까? 앱을 개발하는 데 도움이 될 수있는 자습서가 있다면 공유하십시오. 사용자가지도에서 위치를 선택하면 사용자가 알림 거리를 입력 할 수있는 새 화면이 표시됩니다. 그러나 앱이지도 화면에서 사용자 입력 화면으로 이동하면 GPS 아이콘이 사라집니다. 무엇이 문제 일 수 있습니까? 알람 설정과 관련된 부분입니다.안드로이드 앱이 새 화면으로 전환하면 GPS 연결이 끊어짐

mSetAlarm.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      // Get the distance from the shared preferences 
      SharedPreferences preferences = PreferenceManager 
       .getDefaultSharedPreferences(getBaseContext()); 

      String distanceStr = preferences.getString("distance", "0"); 
      double distance = Double.parseDouble(distanceStr); 

      LocationManager locationManager = (LocationManager) getBaseContext() 
       .getSystemService(Context.LOCATION_SERVICE); 

      AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      Intent intent = new Intent(LocationInfoActivity.this, 
       MyBroadcastReceiver.class); 
      PendingIntent pendingIntent = PendingIntent.getBroadcast(
       getBaseContext().getApplicationContext(), 234324243, 
       intent, PendingIntent.FLAG_UPDATE_CURRENT); 

      MyLocationListener locationListener = new MyLocationListener(
       locationManager, preferences, alarmManager, 
       pendingIntent); 

      if (distance < Double.parseDouble(i)) { 
       alarmManager.set(AlarmManager.RTC_WAKEUP, System 
         .currentTimeMillis(), pendingIntent); 
       locationManager.removeUpdates(locationListener); 
      } else if (distance < 4.0) { 
       WakeMeUtill.requestLocationUpdates(locationManager, 0, 0, 
         locationListener); 
      } else { 
       double quaterDistance = (distance * 3)/4; 
       WakeMeUtill.requestLocationUpdates(locationManager, 0, 
         (float) quaterDistance * 1000, locationListener); 
      } 
     } 
    }); 
} 
+0

어떤 기기/Android 버전을 사용하고 계십니까? – Evgeny

답변

0

코드에서 할 수 있음() 메소드

onPause() 
{ 
    gpsLocationManager.removeupdates() 
} 

코드를 확인하십시오 onPause에서이 줄을 썼다.

이 문제가 아닌 경우 좀 더 자세히 설명해주세요.

관련 문제