안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
GPS 가 아닌 Cell tower 와 Wifi 를 통한 Indoor 위치 측위에 대하여 Open Source에서 찾아보는 중입니다.
GPS 의 경우 ILocationProvider aidl를 상속받아서 구현 하는 GpsLocationProvider class 가 있는데,
NetworkLocationProvider 의 경우 donut release 1.0버전 포함 이전 까지는 있었는데,
그 이후 부터는 사라져 버렸습니다.
Eclair에서도 파일 자체도 없고요.
제가 궁금한 점은 Platform 구조상
LocationProviderProxy 내를 보면,
LocationProviderProxy mNetworkLocationProvider; 가 있고
installLocationProvider(String name, ILocationProvider provider) {
}
함수를 호출 하는 측에서 ILocationProvider 를 상속 받은 Network Location Provider 를 넣어줘야 할 것으로 보이는데,
이 부분이 찾아봐도 보이질 않습니다.
그렇다고 넥서스원으로 Airplane mode로 맞춰서 3G를 끄고 GPS 도 안잡히는 내부에서 Wifi만 연결 시켜 놓았을 경우,
건물 주면에 현 위치 정보를 획득해 오고 있습니다.
인터넷을 WPS 관련으로 검색하면, Skyhook관련 이용하여 처리하는 방법이 있다와 Google 자체의 Google map 과 Street View에서 주변에 설치된 Wifi lan의 정보를 DB화 해놨다는 이야기는 봤습니다.
그런데, 정작 open source 단에서는 이에 대한 호출 과 이용을 위한 ACCESS_COARSE_LOCATION 등은 보이지만,
Google DB에 접근하는 부분에 대해서는 보이질 않습니다.
실제 release 1.0 이전에는 있었던 NetworkLocationProvider 에서 처리를 한것으로 보이는데,
그냥 rel 1.0 이후 부터는 그냥 open를 거부 하고
App에서는 ACCESS_COARSE_LOCATION만 호출 하고,
getLastKnowLocation만 호출 하면 알아서 잘 줄거니깐 믿고 써라 인건지요?
만약 믿음이 약해 진다면, Skyhook를 사용한다든지 이와 유사한 무엇인가가를 이용하여 MockProvider등에 넣어서 사용하라는 뜻인지요?
긴 질문 읽어 주셔서 감사합니다.
공지사항을 다 읽었음
GPS 가 아닌 Cell tower 와 Wifi 를 통한 Indoor 위치 측위에 대하여 Open Source에서 찾아보는 중입니다.
GPS 의 경우 ILocationProvider aidl를 상속받아서 구현 하는 GpsLocationProvider class 가 있는데,
NetworkLocationProvider 의 경우 donut release 1.0버전 포함 이전 까지는 있었는데,
그 이후 부터는 사라져 버렸습니다.
Eclair에서도 파일 자체도 없고요.
제가 궁금한 점은 Platform 구조상
LocationProviderProxy 내를 보면,
LocationProviderProxy mNetworkLocationProvider; 가 있고
installLocationProvider(String name, ILocationProvider provider) {
}
함수를 호출 하는 측에서 ILocationProvider 를 상속 받은 Network Location Provider 를 넣어줘야 할 것으로 보이는데,
이 부분이 찾아봐도 보이질 않습니다.
그렇다고 넥서스원으로 Airplane mode로 맞춰서 3G를 끄고 GPS 도 안잡히는 내부에서 Wifi만 연결 시켜 놓았을 경우,
건물 주면에 현 위치 정보를 획득해 오고 있습니다.
인터넷을 WPS 관련으로 검색하면, Skyhook관련 이용하여 처리하는 방법이 있다와 Google 자체의 Google map 과 Street View에서 주변에 설치된 Wifi lan의 정보를 DB화 해놨다는 이야기는 봤습니다.
그런데, 정작 open source 단에서는 이에 대한 호출 과 이용을 위한 ACCESS_COARSE_LOCATION 등은 보이지만,
Google DB에 접근하는 부분에 대해서는 보이질 않습니다.
실제 release 1.0 이전에는 있었던 NetworkLocationProvider 에서 처리를 한것으로 보이는데,
그냥 rel 1.0 이후 부터는 그냥 open를 거부 하고
App에서는 ACCESS_COARSE_LOCATION만 호출 하고,
getLastKnowLocation만 호출 하면 알아서 잘 줄거니깐 믿고 써라 인건지요?
만약 믿음이 약해 진다면, Skyhook를 사용한다든지 이와 유사한 무엇인가가를 이용하여 MockProvider등에 넣어서 사용하라는 뜻인지요?
긴 질문 읽어 주셔서 감사합니다.
공지사항을 다 읽었음
안드로메다와 아이뽕 분석 하는중~
공간 측위 관련과 Open GL 공부중... >..<
2010.05.06 19:56:12
License 해서 쓰라고 하는 거라면, 이러한 정책이 바꼈다라고 Release Note 등이나 기타 comment 가 소스내에 있어야 하는데,
그런 이야기는 찾아봐도 전혀 안보여서요.
회사 name(제조사 또는 통신사?)에 맞춰서 NETWORK_PROVIDER name 인 "network"를 변경해서 사용 한다는 blog 답변등은 있는데,
이건 좀 뜬구름 잡는 듯한 느낌이 강하고,
하다못해 지원하던 open source 를 license로 바꿨으면
이러한 ILocationProvider라는 interface를 만들었으니, 이렇게 만든 SDK API라도 공개 되어 있어야 하는데, 그런 부분도 전혀 안보여서요 ;;;
흐음. 그냥 Interface는 있고, 중간 layer인 provider는 그냥 잊고 android SDK api만 이용하면 된다는 건지 궁금해서요.
그럼 기존 핸드폰 만들어서 파는 제조업체는 어떻게 대응 해야 되는건지 파고들면 들수록 답이 안나오네요 -ㅁ-;
그런 이야기는 찾아봐도 전혀 안보여서요.
회사 name(제조사 또는 통신사?)에 맞춰서 NETWORK_PROVIDER name 인 "network"를 변경해서 사용 한다는 blog 답변등은 있는데,
이건 좀 뜬구름 잡는 듯한 느낌이 강하고,
하다못해 지원하던 open source 를 license로 바꿨으면
이러한 ILocationProvider라는 interface를 만들었으니, 이렇게 만든 SDK API라도 공개 되어 있어야 하는데, 그런 부분도 전혀 안보여서요 ;;;
흐음. 그냥 Interface는 있고, 중간 layer인 provider는 그냥 잊고 android SDK api만 이용하면 된다는 건지 궁금해서요.
그럼 기존 핸드폰 만들어서 파는 제조업체는 어떻게 대응 해야 되는건지 파고들면 들수록 답이 안나오네요 -ㅁ-;
2010.05.06 20:17:38
Xperia 10 의 spec 상에 NetworkLocationProvider 라는 기능이 있어서 naver로 검색해 보니
http://blog.naver.com/mbyn33?Redirect=Log&logNo=90078418849
블로그에 제가 계속 찾고 있는 방향의 내용이 있네요.
저도 이분의 link한 위치가서 뒤져 보면 있는데,
실제 최신 버전의 모토롤라 source 부나 Gallexy, myDroid 소스를 뒤져도 안나오더라구요.
결론은 Maps 처럼 license를 받아서 해야할 것으로 보인다.
나중에 이에 대한 개발을 하게 된다면, skyhook licesnse를 사거나 google license 를 사서 해야 한다는 방향으로 결론을 지어야 할것 같네요.
혹시 license 가 아닌 뭔가 다른 것이 있다로 알고 계신분 있으시면 댓글 달아 주십시오.
http://blog.naver.com/mbyn33?Redirect=Log&logNo=90078418849
블로그에 제가 계속 찾고 있는 방향의 내용이 있네요.
저도 이분의 link한 위치가서 뒤져 보면 있는데,
실제 최신 버전의 모토롤라 source 부나 Gallexy, myDroid 소스를 뒤져도 안나오더라구요.
결론은 Maps 처럼 license를 받아서 해야할 것으로 보인다.
나중에 이에 대한 개발을 하게 된다면, skyhook licesnse를 사거나 google license 를 사서 해야 한다는 방향으로 결론을 지어야 할것 같네요.
혹시 license 가 아닌 뭔가 다른 것이 있다로 알고 계신분 있으시면 댓글 달아 주십시오.
2010.05.15 14:41:02
Use Wireless Network 옵션을 사용하면(Network Provider) 구글의 GMS 솔루션중 하나인 NetworkLocationProvider.apk 을 이용합니다.
이건 소스로 오픈되어 있지 않고 말 그대로 apk 형태로 제공됩니다.(구글 맵스처럼)
구글의 GMS 는 모든 단말에 포함되어 있으며 이를 이용하여 다음의 것이 가능해집니다.
1. WIFI 가 켜져 있다면 network provider 로 WIFI 을 이용하여 측위 가능.
2. WIFI 가 꺼져 있다면 network provider 로 CELL ID 를 이용하여 측위 가능.
3. Reverse Geo coding 을 지원.(위도/경도를 집어 넣으면 주소로 return 되는..)