Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

난 정말 최고야 멋있어

안드로이드 기기관리자 사용하기 본문

카테고리 없음

안드로이드 기기관리자 사용하기

n00bh4cker 2020. 5. 9. 10:55

1. 메니페스트 설정하기

        <receiver android:name=".FactoryReset" //클래스 이름 써주기
            android:permission="android.permission.BIND_DEVICE_ADMIN">
            <meta-data android:name="android.app.device_admin"
                android:resource="@xml/factoryreset" />
            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>

리시버를 만들고 권한에 BIND_DEVICE_ADMIN을 허용해주어야한다

메타데이터도 선택이 아닌 필수!!

인텐트 필터를 만들고 안에 액션으로 DEVICE_ADMIN_ENABLED 속성을 주어야 한다

 

2.device_admin XML 파일 짜기

<device-admin>
	<uses-policies>
		<limit-password />
		<watch-login />
		<reset-password />
		<force-lock />
		<wipe-data />
		<expire-password />
		<encrypted-storage />
		<disable-camera />
	</uses-policies>
</device-admin>

필요한 정책들만 주면 된다 use-polices 블록까지는 필수!!

 

3. DeviceAdminReciever 상속 클래스 작성하기

class FactoryReset : DeviceAdminReceiver()
{
    override fun onEnabled(context: Context, intent: Intent) {
        super.onEnabled(context, intent)
    }

    override fun onDisabled(context: Context, intent: Intent) {
        super.onDisabled(context, intent)
    }
}

음.. 근데 굳이 구현부를 구현할필요가 있나 싶기도 한데.. 잘 모르겠다

 

4. 진짜 코드 작성하기

        val dpm = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager

        val admin = ComponentName(this,FactoryReset::class.java)
        if (dpm.isAdminActive(admin))
            dpm.wipeData(0)
        else
            Toast.makeText(this,"기기 관리자 설정을 해주세요!",Toast.LENGTH_SHORT).show()
  

꼭!! isAdminActive()로 확인후에 작업하기 맨첨에 try catch 안에 집어넣고 삽질 ㅋㅋ;;

원래 정상적인 프로그램이라면 else 부분에 기기관리자 인텐트를 넣었겠지만 귀찮아서 패스

 

 

아니 근데 원래 에뮬레이터는 기기관리자를 통한 초기화가 안되나;;