2011-05-12 3 views
6

지도에서 다양한 네트워크 운영자의 신호 강도를 보여주는 Android 앱을 개발하려고합니다. 문제는 네트워크 운영자를 변경하는 유일한 방법은 수동으로 수행하는 것입니다.Android 앱으로 네트워크 운영자 변경

수동으로 변경하지 않고이 정보를 얻을 수있는 방법에 대한 아이디어가 있으십니까? 내부/개인용 Android 클래스가 있다고 생각합니다.

답변

1

Google 내부 API를 하나 이상 사용해야합니다. 기본적으로 다양한 (보통 좋은) 이유로 Android 애플리케이션에서 사용할 수있는 것은 아닙니다. 테 더링을 켜고 끄고 구성하는 API는 공용 API가 아니며 타사 응용 프로그램에서 직접 호출 할 수 없습니다.

두 가지 작업을 수행해야합니다. 먼저 Android 소스 코드를 다운로드하고 목록에 표시하고 이동 통신사를 전환하는 데 필요한 API를 찾습니다. Android 소스 코드 및 다운로드 지침 here을 찾을 수 있습니다.

둘째, 리플렉션을 사용하여 해당 API의 메소드를 호출해야합니다. 이것에 대한 최선의 접근 방식과 내가 테 더링 API를 사용하기 위해 사용했던 것은 프록시 클래스를 작성하는 것입니다. 사용할 API와 동일한 메소드를 제공하고 각 메소드 내부에서 API 메소드를 호출하기 위해 리플렉션을 사용하십시오. 다른 기술은 (a) Android 소스 코드의 일부를 클래스 경로에 추가하지 않고 컴파일하지 않고 (b) 배포 할 때 (b) 컴파일하지만 폭발적입니다.

Nexus 브랜드 기기에서 바닐라 Android 코드를 사용하는 것이 가장 좋습니다. 테 더링을 켜고 끄기위한 홈 화면 위젯을 작성하려는 나의 (성공한) 시도가 Nexus One에서 작동했지만 Samsung Galaxy Tab P1000에서는 작동하지 않았습니다. 이 장치는 테 더링을 지원했지만 삼성은이 포팅 노력의 일부로 OS의 해당 부분을 수정했습니다.

관련 문제