2012-09-05 6 views
1

사용자가 전화를 걸 때 전화의 위치를 ​​추적하고 싶습니다. 불필요한 중복 센서를 등록하고 싶지 않아서 센서 배터리 사용량을 계산하지 않으려 고합니다. 시스템은 통화가 시작될 때 근접성을 사용합니다.통화 중에 전화가 FAR 또는 CLOSE인지 여부를 알아야합니다.

내 질문은 사용자의 귀에 상대적인 전화의 위치 ("안쪽"/ "가까운"안드로이드 로그 용어)를 얻는 방법입니다.

감사 부시

+2

왜 여분입니까? – Sam

+0

일단 센서를 등록하면 시스템은 앱의 센서 타임을 계산합니다 (다른 앱에서 이미 열어 본 것과 상관없이 - 확인 및 확인 됨). 센서는 꽤 무거운 소비자입니다. 앱의 배터리 소비 백분율을 낮게 유지하고 싶습니다. 할 수있는 한. – Bush

+0

표준 전화 응용 프로그램에 근접 센서 데이터에 대한 액세스를 허용하는 API가 없으면 청취자를 등록하지 않고도 정보를 얻을 수 있다고 생각하지 않습니다 ... – Sam

답변

3

는 지금까지 내가 아는 한, 근접 센서는 사용자의 얼굴과의 거리를 확인하는 가장 좋은 방법입니다.

그러나 좋은 알고리즘을 생각해 내고 싶다면 가속도계와 마이크를 사용해보십시오. 그러나 한 번에 두 개의 앱에서 마이크를 사용할 수 없습니다.

사용자의 장치가 얼굴을 만지면 한 방향에서 다른 방향으로 변화하는 가속도계 움직임이 줄어 듭니다. 그러나 휴대 전화를 들지 않으면 흔들릴 수 있습니다. 그리고 가속도계 판독 값에 전혀 변화가 없다면 책상 위에 누워있을 가능성이 있으며 사용자는 라우드 스피커로 이야기하거나 헤드셋을 사용하고 있습니다.

+0

감사합니다 Raghav,하지만 거리가 필요하지 않습니다. 안드로이드가 거리를 '멀리'또는 '닫기'로 간주 할 때만 알 필요가 있습니다. 안드로이드는 나와 함께 /하지 않고 이것을 수행합니다 ... 나는 알고리즘을 파고 들지 않았고 싶지도 않습니다 ... 나는 단지 그들을 신뢰하고 싶습니다. 그들이 먼 거리를 고려할 때 나에게 통보 해주세요. – Bush

+0

그러면 근접 센서를 사용할 수 있습니다. 배터리 소모가 그리 높지는 않습니다. 이것이 옵션이 아닌 경우 화면이 현재 켜져 있는지 확인하는 방법을 찾아야합니다. 안드로이드는 전화가 닫힐 때 통화 중에 스위치를 끄기 때문에 위치를 알려줘야합니다. –