모바일 개발자 LasseLindh

[안드로이드/Android] 개발자모드 상태 가져오기 본문

Android

[안드로이드/Android] 개발자모드 상태 가져오기

사용자 라쎄린드 2018.06.27 20:49

How to get Developer-mode status  in Android ?



개발자 모드가 Enable 임을 알고 싶은 경우

@android.annotation.TargetApi(17) public boolean isDevMode() {
if(Build.VERSION.SDK_INT == 16) {
return android.provider.Settings.Secure.getInt(getApplicationContext().getContentResolver(),
android.provider.Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED , 0) != 0;
} else if (Build.VERSION.SDK_INT >= 17) {
return android.provider.Settings.Secure.getInt(getApplicationContext().getContentResolver(),
android.provider.Settings.Global.DEVELOPMENT_SETTINGS_ENABLED , 0) != 0;
} else return false;
}



USB 디버깅 모드가 Enable 임을 알고 싶은 경우

public boolean isUsbDebuggingEnable() {
return Settings.Global.getInt(getContentResolver(), Settings.Global.ADB_ENABLED, 0) != 0;
}


보안이 강하게 요구되는 어플리케이션의 경우 UsbConnect Receiver 를 통해 USB가 연결됐을 경우 

디버깅모드가 활성화 되어있으면 앱을 이용할 수 없도록 하는 조치가 요구되기도 한다.



리시버 등록부

UsbConnectReceiver usbReceiver = new UsbConnectReceiver();

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
registerReceiver(usbReceiver, intentFilter);


리시버 구현부

public class UsbConnectReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_POWER_CONNECTED) ) {
boolean detected = isUsbDebuggingEnable();
if(detected) {
// TODO 넌 내앱을 디버깅 할수 없어요
}
}
}
}


0 Comments
댓글쓰기 폼