2011-08-18 7 views
6

wifi 나 3G (또는 그 이상)가 있더라도 특별히 GPRS 연결이 필요한 곳에 응용 프로그램을 작성 중입니다. 내가 어떻게 프로그래밍 방식으로 3G를 사용하지 않고 GPRS 연결 만 사용하고 장치 설정에서 수동으로 변경하는 것과 동일한 효과를 얻을 수 있는지를 알아낼 수 없다는 것을 wifi를 비활성화하는 방법을 알아 냈습니다 (WifiManager).3G 또는 Wifi 대신 GPRS 연결을 강제로 수행하는 방법은 무엇입니까?

코드로이 작업을 수행 할 수있는 방법이 있습니까?

업데이트 : 내가 찾고있는 것은 반드시 공개 안드로이드 API에있을 필요는 없습니다. 문서화되지 않은 API 중 하나에 있거나 마지막 수단으로 장치 별 API가있을 수 있습니다. 작동하는 무언가가 필요합니다. 그러나, 나는 차라리이 기능들을 사용하기위한 장치를 뿌리 뽑을 필요가 없다.

답변

2

문제는 비공개 API가 아니지만 제 3 자 APK가 이러한 설정을 수정할 수있는 권한을 얻을 수 없다는 것입니다.

이렇게하면 개인 인터페이스를 리버스 엔지니어링 할뿐만 아니라 루팅 된 장치가 필요합니다.

0

까지 모바일 네트워크의 유형을 변경하는 것이 앱에서 불가능하다는 것을 알고 있습니다.

+0

나는이 기능을 갖춘 것으로 보이는 하나 이상의 응용 프로그램 (즉, [확장 제어] (https://market.android.com/details?id=com.extendedcontrols) 응용 프로그램)을 알고 있으므로 불가능하다고 생각합니다. – Frxstrem

+0

@Frxstream - 루트가 아닌 장치에서 확인 했습니까? "가능한 앱에서"는 안드로이드가 설계 한 기능이 아니라 수퍼 유저로서 도우미 프로세스를 시작하면서 앱이 할 수 있도록 설계된 것을 가리키는 경향이 있습니다. –

0

안드로이드 프레임 워크에서 TelephonyManager는 안드로이드 응용 프로그램에 전화 통신 서비스를 제공하는 객체입니다.
http://developer.android.com/reference/android/telephony/TelephonyManager.html
서비스는 귀하의 실제 라디오 구성 요소의 상태 및 정보를 알기위한 몇 가지 방법을 제공합니다.

그러나 장치의 실제 라디오 구성 요소가 작동하는 방식을 수정할 방법이 없습니다. 그것의, radiophony 산업 표준을 준수하고 최적의 최종 사용자 경험의 품질을

이 (달빅 이상)보기의 공개 API 안드로이드 점이다 해답을 제공하기 위해 최선을 다하려고 할 장치 제조업체의 개인 논리 개인 안드로이드 api의 컨텍스트에서 대답도, 네이티브 방식도 뿌리 특권 방식.

관련 문제