나는 BroadcastReceiver가 텍스트, 전화 이벤트 등을 감시하고 있음을 알고 있습니다. 그러나 LocationServices를 위치 기반 서비스 및 이벤트로 실행할 수 있습니까?BroadcastReceiver 위치 :
예를 들어 특정 GPS 지점 근처에 있으며 전화로 알려줍니다.
나는 BroadcastReceiver가 텍스트, 전화 이벤트 등을 감시하고 있음을 알고 있습니다. 그러나 LocationServices를 위치 기반 서비스 및 이벤트로 실행할 수 있습니까?BroadcastReceiver 위치 :
예를 들어 특정 GPS 지점 근처에 있으며 전화로 알려줍니다.
나는 당신이 찾고있는 것이 이런 것이라고 생각합니다. LocationManager.requestLocationUpdates()
의 버전은 PendingIntent
을 매개 변수로 사용하며이 인 텐트는 BroadcastReceiver
을 실행하는 데 사용될 수 있습니다. 이 코드는 사용자 정의 브로드 캐스트를 등록하여 위치 업데이트를 실행합니다.
Intent intent = new Intent("UNIQUE_BROADCAST_ACTION_STRING_HERE");
LocationManager manager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
long minTime; //This should probably be fairly long
float minDistance; //This should probably be fairly big
String provider; //GPS_PROVIDER or NETWORK_PROVIDER
PendingIntent launchIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
manager.requestLocationUpdates(provider, minTime, minDistance, launchIntent);
은 그럼 그냥 같은 의도 작용하여 BroadcastReceiver
을 등록해야하며 처리를 위해 위치 업데이트를 받게됩니다. 그리고 어떤 점에서 manager.removeUpdates(launchIntent)
에 전화해야하기 때문에 주위에 PendingIntent
을 유지하십시오!
최종 참고 : 앱이 포 그라운드에없는 동안 정기적으로 위치 업데이트를 구현하기 위해 노력하고있다처럼 소리 때문에
,이 점에 유의하십시오. 앱을 배터리 킬러로 분류하고 싶지 않다면이 기능을 구현하는 방법에 매우주의해야합니다.
큰 minTime 또는 minDistance 매개 변수로 위치 업데이트 빈도를 크게 줄이면 위치 서비스를 중지 할 수 있습니다. 이 기능은 앱이 백그라운드에서 위치를 추적 할 수 있도록 사용자가 제어하는 환경 설정에 연결되어야합니다.
희망이 도움이됩니다!
이동 무선 디자인 @, 당신이 보석 위치 : 아래에서 더 자세하게 배울 수 있습니다 나는 이것이 사실이라고 생각했다. 나는 Droid의 의도에 대해 아직도 배우고있다. 당신의 반응은 매우 유익하다. 시간을내어 주셔서 감사합니다. – ProNeticas
문제 없습니다. 이 답이 문제를 해결하면 끝내주십시오. 건배! – Devunwired
먼저 테스트 해보고 싶습니다.) – ProNeticas
이 질문은 2 년이 넘었지만 지금은 매우 쉽고 배터리 효율적인 방법이 있습니다. 이 개념은 Geofences입니다. 여기
http://developer.android.com/training/location/geofencing.html
당신이 http://developer.android.com/reference/android/location/LocationListener.html – schwiz