알려진대로 안드로이드 4.2에서만 시스템 애플리케이션이 비행기 모드를 토글 할 수 있습니다. 하지만 뿌리를 내린 기기에 사용할 수 있어야한다고 생각합니다. 그리고 Build.VERSION.SDK_INT> = 17 인 루팅 된 장치에 대한 내 응용 프로그램에서이를 구현하려고합니다. Android 4.2에서 루팅 된 기기에서 비행기 모드를 전환하는 방법은 무엇입니까?루트를 사용하여 Android 4.2 이상에서 비행기 모드를 전환하는 방법은 무엇입니까?
답변
Android 4.2에 새로운 "설정"바이너리가 있습니다. su없이 사용할 수도 있습니다. 앱의 매니페스트에 선언 된이 설정을 변경하는 데 필요한 권한이 필요합니다 (4.2의 비행 모드는 WRITE_SECURE_SETTINGS가됩니다). - 시스템 파티션에 설치된 앱에만 부여됨).
다른 안드로이드 버전 및 기타 설정 (비행 모드가 4.2 전에 루트없이 활성화 할 수 있습니다) 당신은 SQL이 settings.db에 주입 사용할 수 있습니다 들어
su
settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
을 비활성화
su
settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
활성화
su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
insert into global values(null, 'airplane_mode_on', 1);
"global"을 "system"또는 "secure"및 "airplane_mode_on"으로 바꾸십시오. 원하는 테이블 엔트리의 키. 일부 설정의 경우 나중에 특정 방송을 보내야합니다 (비행 모드의 경우 위의 예 참조). (반드시 중복하지만)
su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
.tables
select * from global
select * from secure
select * from system
나는 이것에 대해서 100 % 명확하지 않다 ... 이것은 합법적으로 = 4.2 이상의 API를 통해 루트 모드없이 비행기 모드를 토글 할 수있는 방법이 없음을 의미합니까? – Marius
네, 원래의 질문에 대한 답입니다. (귀하의 앱은 루트가 없거나 펌웨어를 개발/컴파일하는 시스템 앱이 될 수 없습니다.) – user1806772
관련 : 당신의 settings.db 터미널 응용 프로그램이 실행 탐구하는
http://stackoverflow.com/questions/13766909/android-how-to- enable-disable-flight-mode-on-android-4-2? lq = 1 –
예,이 질문은 중복되지 않습니다. – BArtWell