3G 데이터 통신을 끌 수 있는 API를 찾아본 결과, API는 존재하지 않는다. 라는 결론을 일단 내렸습니다.

그래서 찾아보던중 우회적인 방법으로 APN을 변경하여 3G를 끌 수 있다는 사실을 알았습니다.

APNDroid가 그와 같은 방식으로 동작하고요,


3G를 끄는 방법에서,

1. 설정->모바일 네트워크 설정->데이터 사용 체크 해제
device2.png

2. APNDroid로 끄기

3. SwitchPro 위젯에서 3G 끄기



현상을 보면,

2, 3번으로 3G를 꺼도 1번에서 옵션부분에 체크는 사라지지 않습니다.
즉, 진짜로 3G를 끄는게 아니라는 얘기입니다.
2번 APNDroid는 APN만 가짜로 만들어버려 3G통신을 "못하도록" 만들어버리는 것이니 이해가 갑니다.

근데 SwitchPro로 3G를 끄게 되면 APN이 변경되지도 않고, 1번에 체크도 사라지지는 않지만,
Indicator에서 3G표시가 사라지며, 확실히 3G가 끊어집니다.




질문 1.
1번의 경우 에뮬레이터로 확인해보니 Froyo버젼에서 추가된 것 같습니다.
Froyo에서 추가된 것을 보면 API가 생겼을 것 같은데 찾아봐도 그런 얘기는 어디에도 없네요.

이것에 대해 아시는 분이나, 1번에서 체크를 없앨 수 있는 코드(진정한 의미의 3G차단)를 알고 계신분은 알려주세요.


질문 2.
SwitchPro의 3G차단 방식에 대해 알고 계신가요?


질문 3.
위의 방법 이외에 3G를 차단할 수 있는 다른 방법을 알고 계시면 알려주세요.
현재 APN을 수정하여 3G를 차단하는 방법은 알고 있습니다.





* 추가사항
질문 1에 대한 대답중에

Changing programmatically the new "Data enabled" setting is not possible AFAIK on Android 2.2 (froyo). This setting is a "Secure" setting that can only be read, unless the app is granted the android.permission.WRITE_SECURE_SETTINGS permission. Unfortunately this permission is not granted by the PackageManager to ordinary applications, even if you declare it in the app manifest.

So I'm afraid that apps/widgets modifying the APNs are still the best solution for now to enable/disable your mobile network connection.

Richard

위와 같은 글이 있긴 합니다ㅠ

안녕하세요~반갑습니다!!