프로그래밍 방식으로 장치 설정에 액세스 할 수있는 방법이 있습니까? 예를 들어프로그래밍 방식으로 장치 설정에 액세스하는 방법은 무엇입니까?
: 사전에
감사는 false 설정> 개발자 옵션> USB 디버깅> /.
편집 : USB 디버깅은 그 예입니다. 기기의 설정에있는 모든 설정에 액세스 할 수 있습니까?
프로그래밍 방식으로 장치 설정에 액세스 할 수있는 방법이 있습니까? 예를 들어프로그래밍 방식으로 장치 설정에 액세스하는 방법은 무엇입니까?
: 사전에
감사는 false 설정> 개발자 옵션> USB 디버깅> /.
편집 : USB 디버깅은 그 예입니다. 기기의 설정에있는 모든 설정에 액세스 할 수 있습니까?
Settings.Secure.putInt(getActivity().getContentResolver(),Settings.Secure.ADB_ENABLED, 1);
하지만 이렇게하려면 루트 액세스가 필요합니다. 이 활동
을 유지하지 않는 모든 ANR 수ActivityManagerNative.getDefault().setAlwaysFinish(true)
과에 대한 표시하려고하지만 표준 API에 ActivityManagerNative 숨겨져 : 만 시스템 애플리케이션은 보안 설정Settings.Secure.putInt(ContentResolver,Settings.Secure.ANR_SHOW_BACKGROUND,0);
편집을 변경할 수있는 권한이 세트. 당신은 반사를 할 필요가 있거나이 method을 사용하여 android.jar를 얻습니다. 의 AndroidManifest.xml에서
int adb = Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.ADB_ENABLED, 0);
// toggle the USB debugging setting
adb = adb == 0 ? 1 : 0;
Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.ADB_ENABLED, adb);
: 는 다시 나는이 같은 시도
감사합니다. 이 코드는 작동하지만 예제로 USB 디버깅을 작성했습니다. 실제 질문은 액세스 할 수있는 설정입니다. "활동을 지키지 마십시오"또는 "모든 ANR 표시"에 액세스 할 수 있습니까? – auy
편집을 확인하십시오. – nandeesh
Android 플랫폼 인증서를 사용하여 앱에 서명해야하므로 Settings.Secure.putInt (getActivity(). getContentResolver(), Settings.Secure.ADB_ENABLED, 1); '가 자체적으로 작동하지 않으므로 앱에 적절한 설정은'AndroidManifest.xml'에 있고, 앱은 프로그래밍 방식으로 또는 수동으로'/ system/app'에 설치됩니다. 루팅 된 장치로도이 작업을 수행 할 수 없습니다. – ChuongPham
루트 액세스를 필요로 추측
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"></uses-permission>
을 마지막으로이 예를 살펴
위의 내용은 Android 플랫폼 인증서로 앱에 서명해야하고, 앱이 'AndroidManifest.xml'에 적절한 구성을 가지고 있으며 앱이 프로그래밍 방식으로 '/ system/app'에 설치되어 있거나 수동으로. – ChuongPham
당신 USB 디버깅을 켤 수 없다면 귀하의 앱은 시스템 앱입니다.
코드 행은 도움이 될 수
Settings.Global.putInt(getContentResolver(), Global.ADB_ENABLED, 1);
당신은이 권한이 필요합니다
하지만이 오류가 발생합니다 매니페스트에이 권한을 추가 한 후
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
가 : 권한 만입니다 시스템 응용 프로그램에 부여
즉 을 의미합니다. 앱은 시스템 앱이어야합니다.
나는이 질문이 오래되었지만 흥미 롭다는 것을 안다.
Nandeesh의 솔루션이 잘 작동합니다. 그러나 USB 디버깅과 같은 특정 설정을 변경하려는 경우에는 작동하지 않습니다. 다음 권한을 사용해야합니다.
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
하지만 시스템이 아닌 앱에서는 작동하지 않습니다. 그러나 루트 액세스이있는 경우이 작업을 수행 할 수 있습니다. 저자가 똑같은 문제를 해결하는 this 해결책을 시도해 볼 수 있습니다.당신이 응용 프로그램 당신은 간단하게이 또한이 작업을 수행하려면 루트 액세스 권한이 필요
Settings.Secure.putInt(getActivity().getContentResolver(),Settings.Secure.ADB_ENABLED, 1);
비활성화 USB 디버깅을 활성화/않는 시스템 응용 프로그램의 경우
을 시도 할 수 있습니다. 나는 장치를 뿌리 뽑았으므로 Usb 디버깅을 활성화/비활성화하려면 SU을 실행하기 만하면됩니다.
Process proc = Runtime.getRuntime().exec(new String [] { "su", "-c", "setprop", "persist.service.adb.enable", "0"});
proc.waitFor();
Process proc2 = Runtime.getRuntime().exec(new String [] { "su", "-c", "stop", "adbd"});
proc2.waitFor();
좋은 것은 당신이 (/ 시스템/PRIV-응용 프로그램 /) 귀하의 간단한 응용 프로그램 즉 (/ 데이터/응용 프로그램)이 작업을 수행 할 수 있습니다에서 응용 프로그램을 배치하지 필요성을 입니다.
[이것 좀보세요] (http://stackoverflow.com/q/3458275/940096) – Praveenkumar
직접 링크는 [여기] (https://groups.google.com/forum/#!topic/android)입니다. -developers/lTxvDrD6m-0). – ChuongPham