2013-01-09 6 views
1

내 문제와 내가 달성하고자하는 것을 요약 해 드리겠습니다.Android에서 GSM/UMTS 위치 업데이트를 요청하십시오.

Android 2.3.3이 적용된 SonyEricsson X10i 휴대 전화가 있습니다. 나는 때로는 내 전화가 전체 수신 범위를 나타내는 경우에도 전화를받지 않는 것을 깨달았다. 나는 MSC/VLR에서 자신을 체크했는데, 그것은 내가 등록했음을 나타내며, 내 핸드폰은 현재 활성화되어있다 (그리고 IMSI DETACH 플래그도 없다). 그래서 정확하게 작동해야한다. (마지막 Activate Date는 조금 오래되었다. 시간은 SMS/통화/위치 업데이트없이 양호 할 수 있습니다.) 전화가 전체 범위를 표시하고 네트워크에있는 것으로 표시되기 전에 언급했듯이. 그러나 나는 그것을 부르려고 할 때 나는 단지 음성 메일에 도착했다. MSC/VLR에서 호출에 대한 호출 응답 없음 원인이 표시되지만 전화는 아무 것도하지 않습니다. 다른 SW 버전 (4.0.3 ICS)으로 시도했지만 동일한 결과가 나타납니다. 그러나 다른 핸드셋 (동일한 유형)으로 비슷한 동작을 발견하지 못했습니다. 긴 요약을 위해 죄송합니다.

그래서 위에서 설명한대로 15-20 분 안에 GSM/UMTS 위치 업데이트를 수행 할 응용 프로그램/서비스를 작성하려고하지만 어떤 절차도 찾을 수 없습니다. android.telephony.gsm.GsmCellLocation, android.telephony.TelephonyManager 나를 위해 이것을 할 것입니다.
다른 관심사는 ServiceState 클래스의 getState()/setStateOutOfService()/ setState() 절차입니다 ... 그들은 실제로 작동하지 않는 것 같습니다. 예를 들어, 내가 먼저 나는 항상 내가 적어도 난 다시 getState()에서 그 상태를 얻을 STATE_POWER_OFF 또는 STATE_IN_SERVICE에 상태를 설정할 수있을 때 사실이 아니다 다시 STATE_OUT_OF_SERVICE, ... 을 얻을 의 getState()를 호출 그 후에는 전화가 아무 것도하지 않습니다. (보험 적용 범위 외 표시 등 ...)

모든 제안/의견을 환영합니다.

+0

재미있는 질문이지만 다른 의견을 말하면서 내가 원하는 것을 완전히 이해할 수는 없습니다. 알고있다. 내가 아는 한, 셀 타워 삼각 측량에서 설정 한대로 휴대 전화 위치 (위도, 경도)를 지정하고 싶습니다. 맞습니까? 만약 그렇다면 당신은 LOCATION_PROVIDER를 통해 그것을해야하고 NETWORK_PROVIDER를 요청하십시오. 그것이 당신이 묻는 것이 아니라면, 당신의 질문을 조금 명확히하는 것이 좋습니다. – Budius

+0

안녕하세요, 기본적으로 휴대 전화가 라디오/코어 방향으로 새 위치 업데이트를 수행하도록하고 싶습니다.그것은 위도, 경도와 관련이 없습니다) 그것은 순수 GSM/UMTS 이동성 관리 신호입니다. [link] (http://en.wikipedia.org/wiki/Mobility_management). 나는 그것을 명확히하고 싶지 않다면 알려주세요. – zmiricz

+0

지금은 더 명확 해졌지만, 불행히도 내가 도울 수는 없을 것입니다. 행운을 빕니다. – Budius

답변

0

나는 또한이 문제를 여러 번 보았습니다 (귀하의 것과 동일한 제조업체의 전화 2 대). 귀하의 질문에, 나는 당신이 MM 주기적 위치 업데이트 (어쨌든 전송해야합니다)를 보내도록 강요하고 싶어 이해합니다.

이것은 너무 낮 으면 프로그래밍 인터페이스에서 직접 실행할 수있는 곳이 없습니다. 이동성 관리 절차는 전화 스택의 일부이며, www.3gpp.org에서 이용 가능한 3GPP TS 24.008에 상세히 설명되어있다. 4.2.2 절은 전화가 이러한 위치 업데이트를 보내는시기를 정의합니다.

유일한 다른 것은 간접적 인 방법으로 위치 업데이트를 보낼 조건으로 전화를 강제로 시도하는 것입니다. 다른 네트워크를 수동으로 선택하여이 작업을 수행 할 수 있습니다. 성공적으로 홈 네트워크를 수동으로 다시 선택하면 위치 업데이트가 실행됩니다. 그것이 거절 당하고 홈 네트워크로 돌아간다면 위치 업데이트가 시작될 것이라고 생각합니다. 그러나 네트워크 스캔을하는 동안 배터리를 사용하고 수동 네트워크 선택을 스캔하고 수행하는 동안 시간이 손실됩니다. (내 개인적인 경험으로 분실 전화가 자주이를 정당화하기에 충분하지 않다는 것입니다.)

+0

안녕하십니까, 답변 해 주셔서 대단히 감사합니다. 전화가 강제로 위치 업데이트를 수행 할 수 없습니다. 적어도 당신은 지금 그것을 확인했습니다. 해결 방법에 대해 두 번째 생각은 휴대 전화를 오프라인 상태로 전환하고 비행기 모드와 같이 온라인으로 다시 가져 오는 것이 었습니다.하지만 휴대 전화가 코어를 향한 일은 아니라고 생각했습니다. (이 경우 메시지가 전혀 표시되지 않고 대부분의 경우 아마도 페이징/콜/SMS에 대한 응답이 아님). 슬프게도 문제는 조금 더 중요합니다. 사무실에있을 때 거의 항상 발생하기 때문에. – zmiricz

+0

응급 상황 (가족과 일이 생겼을 때 동료가 나를 연락하려고 시도하는 등 ...) 내가 전화를 가지고 있다는 것을 알아라. 친구로부터 팁을 얻었다. 네트워크와 호환되는 새로운베이스 밴드 펌웨어를 내 전화기에 플래시하려고 시도 할 것이다. (나는 시도를 줄 것이다). 다른 해결 방법을 생각해 봅니다. 네트워크를 다시 선택하는 것보다 더 좋은 방법 일 수 있습니다. 응용 프로그램이 새 호출을 시작합니다 (어쩌면 내가 자기 자신을 호출 할 것입니다 :). 도달 불능 문제 때문에 첫 번째 호출 시도가 가장 빠를 것입니다. 그 후에 전화가 다시 온라인이됩니다. – zmiricz

+0

BTW 내가 처음 전화를 걸 때 serviceState.getState()가 항상 STATE_OUT_OF_SERVICE을 돌려주는 이유는 무엇입니까? 그리고 휴대 전화가 오프라인 상태가되도록 강제하십시오. :) 비행기 모드가 아닙니다. – zmiricz