Android에서 GPS(위치 정보 취득)

8602 단어 안드로이드GPS
Android(Java)에서 GPS를 테스트해 보았습니다.

샘플 코드



우선 설정 파일에서 위치 정보 취득을 허가해 둡니다.

AndroidManifest.xml
    <!-- 位置情報 GPSから -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <!-- 位置情報 ネットワークから -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- これは何だろう??? -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />

소스는 이런 느낌입니다.

TestActivity.java
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;

public class TestActivity extends Activity {
    // GPS用
    private LocationManager mLocationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        // GPS
        mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        boolean gpsFlg = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        Log.d("GPS Enabled", gpsFlg?"OK":"NG");
    }

    // GPSボタン
    public void onBtnGpsClicked(View view) {
        mLocationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, //LocationManager.NETWORK_PROVIDER,
            3000, // 通知のための最小時間間隔(ミリ秒)
            10, // 通知のための最小距離間隔(メートル)
            new LocationListener() {
                @Override
                public void onLocationChanged(Location location) {
                    String msg = "Lat=" + location.getLatitude()
                                    + "\nLng=" + location.getLongitude();
                    Log.d("GPS", msg);
                    mLocationManager.removeUpdates(this);
                }
                @Override
                public void onProviderDisabled(String provider) {
                }
                @Override
                public void onProviderEnabled(String provider) {
                }
                @Override
                public void onStatusChanged(String provider, int status, Bundle extras) {
                }
            }
        );
    }
}

해설



일단, 여기저기의 사이트를 참고로, 심플한 소스에 정리해 보았습니다.

위치 정보의 취득 개시는 LocationManager.requestLocationUpdates(〜)위치 정보의 취득 종료는 LocationManager.removeUpdates(LocationListener)입니다.

위치 정보를 얻으려면 GPS뿐만 아니라 네트워크 (WiFi, 3G)도 활용됩니다. 그 점은 iOS와 같습니다만, iOS의 경우는 OS측이 사용할 수 있는 정보를 자동적으로 판단해 위치를 확정하는 것에 대해, Android에서는, GPS 취득인가 네트워크 취득인가를 프로그래머가 구별해 사용하는 사양과 같이 입니다.

또 여러가지 이해하는 대로, 추기해 갑니다.

참고 URL



위치 정보를 얻으려면/GPS를 사용하려면 | 역방향 안드로이드 시작
h tp // w w. 아다코다. 이 m/안 d로이 d/000125. HTML

Android에서 GPS 센서를 사용하는 방법 | TechBooster
h tp : /// ch 보오 s r. 오 rg / 안 d 로이 d / ゔ ぃせ / 227

Android 위치 검색 - 1 (현재 위치 획득)
htp // 코 사과 2. bgs포 t. jp / 2013/05 / ぉ 카치 온마 나게 rm ぉ 카치 온마 나게 r. HTML

【Android】위치 정보 취득에 관한 정리
htp : // bg. 쇼난샤챠. 코 m/2012/06/안 d로이 d. HTML

안드로이드 GPS 정확도를 극적으로 향상시키는 단 하나의 설정 항목
h tp // 모비 ぁ by. 이 m/bぉg-엔 try-3581. HTML

(·o·ゞ 이죠.

좋은 웹페이지 즐겨찾기