내가 도착하거나 특정 장소를 떠나야하는지 알 수있는 GPS로 애플리케이션을 개발하려고합니다. I.E. 만약 내가 집에 있다면, 응용 프로그램은 그것을 알고 있으며, 집에서 나가면 응용 프로그램도 그것을 알고 있습니다. 또는 내 집의 반경을 설정하고 싶다면. 하지만 문제는 내가 appliction을 실행하고 매 x 시간마다 배터리를 죽일 수있는 장소를 검색하려고 할 때라고 생각합니다.GPS에서 장소를 식별하는 가장 좋은 방법은 무엇입니까?
그 작업에 가장 적합한 솔루션은 무엇입니까? 서비스를 사용해야합니까? 내 영어에 대한
public class LocationMap extends Service implements LocationListener {
public static final String LOG = "locationLogger";
Context context;
LocationManager manager;
Location location;
public static final int REFRESH = 1000*1;
public static final int DISTANCE = 1*1;
double lat,lng;
boolean isGps,isWiFi;
public LocationMap(Context context) {
this.context = context;
getLocation();
}
private Location getLocation(){
try {
manager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER,REFRESH,DISTANCE,this);
//Check who is on WiFi or GPS
isWiFi = manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);Log.d(LOG, "Wifi?="+isWiFi);
isGps = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);Log.d(LOG, "Gps?="+isGps);
Log.d(LOG, "manager is not null?="+manager);
if (manager != null) {
if(isGps){
Log.d(LOG, "get last location from Gps");
location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}else
if(isWiFi){
Log.d(LOG, "get last location from WiFi");
location = manager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
if (location != null) {
lat = location.getLatitude();
lng = location.getLongitude();
Log.d(LOG, "lat="+lat +" lng="+lng);
}
}
} catch (Exception e) {
}
return location;
}
public String getPlace(){
String placeName = "No place found, check your gps setting";
try {
Geocoder geocoder = new Geocoder(context);
List<Address> address =geocoder.getFromLocation(getLat(), getLng(), 1);
String country = address.get(0).getCountryName();
String city = address.get(0).getLocality();
String street = address.get(0).getAddressLine(0);
placeName = country+", "+city+", "+street;
} catch (IOException e) {
e.printStackTrace();
}
return placeName;
}
public double getLng(){
return lng;
}
public double getLat() {
return lat;
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
미안 : 여기 내가있는 곳과 좌표를 얻기 위해 만든 클래스입니다. 당신이 나를 이해하길 바랍니다 :)
:
내부 원이 계산됩니다. –
어디서 최고의 튜토리얼을 찾을 수 있습니까? 그것에 대해 검색하고 정확히 내가 필요한 것 같습니다! 감사합니다 –
어떤 자습서가 가장 주관적입니다. 오직 당신 만이 당신에게 말하는 것을 결정할 수 있습니다. –