2014년 1월 21일 화요일

Cordova(구 phonegap)로 android 앱을 만들 때 GPS 정보를 잘 못 받아온다면.

어떤 폰에선 되고 어떤 폰에선 안되고 되다가도 안되고 하도 현상이 여러가지라서

거의 2주동안 붙잡고 씨름했는데

허무한 결말.

navigator.geolocation.getCurrentPosition(success, failure, option);

에서 option에

{
  timeout: 10000
}

만 줘서 하니 잘 된다.

iOS는 뭐 아무렇게나 해도 잘되는데

Android에선 enableHighAccuracy : true 옵션을 주면 안된다.

나머지는 config.xml에

    <feature name="Geolocation">
        <param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
    </feature>

이런게 있는지

platforms/android/AndroidManifest.xml에

가 있는지
....
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

권한이 잘 들어갔는지

정도만 신경 써주면 된다.