DeviceAdmin 장치 관리 및 DeviceOwner 장치 소유자

4219 단어
1, DeviceAdmin 장치 관리
2.2 릴리즈에서는 Android가 도입되었습니다.사용자가 자신의 응용 설비 관리 권한을 수여한 후에 코드에서 많은 시스템 설정을 수정할 수 있다. 예를 들어 잠금 화면 설정 방식, 출하 설정 복원, 비밀번호 설정, 강제 지우기, 비밀번호 수정 등이다.
둘째, DeviceOwner 장치 소유자
장치 소유자는 장치에서 보조 사용자를 생성 및 제거하고 전역 설정을 구성할 수 있는 추가 기능을 가진 특수 장치 관리자입니다.이전에 신청한 Device Admin은 장치를 수정할 수 있지만, 응용 프로그램이 Device Owner가 되면 더 많은 능력을 가지고 다른 응용 프로그램을 제한할 수 있습니다.
쓰다
  • res/xml 디렉터리에 새 파일device_admin.xml;
    
    
        
        
    
    
  • 방송 상속 등록DeviceAdminReceiver;
    class MyDeviceAdminReceiver : DeviceAdminReceiver() {
       override fun onEnabled(context: Context?, intent: Intent?) {
          super.onEnabled(context, intent)
          Log.e(">>>>>>>>>", "onEnabled")
       }
       override fun onReceive(context: Context?, intent: Intent?) {
          super.onReceive(context, intent)
          Log.e(">>>>>>>>>", "onReceive")
       }
       override fun onDisableRequested(context: Context?, intent: Intent?): CharSequence {
          //             ,            ,            
          val strResult = "         root    "
          Log.e(">>>>>>>>>", "onDisableRequested")
          return strResult
       }
       override fun onDisabled(context: Context?, intent: Intent?) {
          super.onDisabled(context, intent)
          Log.e(">>>>>>>>>", "onDisabled")
       }
    }
    
  • 명세서 파일에 방송 등록하기;
    
       
       
          
          
          
       
    
    
  • 장치 관리자 활성화
    if (!devicePolicyManager.isAdminActive(comName)) {
        val intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, comName)
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "           root    ")
        startActivityForResult(intent, 1)
    } else {
        Toast.makeText(this, " App        ", Toast.LENGTH_SHORT).show()
    }
    
  • DeviceOwner
  • NFC 기능을 이용하여 휴대전화를 초기화할 때 Device Owner를 휴대전화에 전송한다.참조 링크.(미검증)
  • ADB 명령을 사용합니다.(검증됨)$adb shell dpm set-device-owner com.sscience.deviceowner/.MyDeviceAdminReceiver 다음과 같은 유사한 오류가 발생하면 설정-계정에서 모든 계정을 종료하고 ADB 설정을 다시 시도할 수 있습니다.
  • 루트 디바이스에서 수행됩니다.(검증됨) 주의: 장치가 로그인한 계정을 종료할 필요가 없습니다.
  • 먼저 설비 관리자를 활성화한다.
  • 그리고 /data/system/ 디렉토리에 device_owner.xml 파일을 만듭니다.
    java.lang.IllegalStateException: Not allowed to set the device owner because 
    there are already some accounts on the device
    
  • 마지막으로 재부팅하면 됩니다.


  • App 비활성화
    
    
    
  • DeviceOwner를 제거하고 하나의 앱이 DeviceOwner가 되면 이 앱은 마운트 해제할 수 없고 설정 -> 안전에서 권한을 닫을 수 없습니다.DeviceOwner를 제거한 후에 이 앱, 즉 DeviceOwner를 종료하려면 다음과 같은 방법이 있습니다.
  • devicePolicyManager.clearDeviceOwnerApp(packageName)
  • 1, AndroidManifest.xml 노드 추가android:testOnly="true";2, 명령adb install -t examole.apk을 통해 이 앱을 설치한다.3, 명령adb shell dpm set-device-owner com.example.sample/.MyDeviceAdminReceiver을 통해 DeviceOwner가 됩니다.4, 명령adb shell dpm remove-active-admin com.example.sample/.MyDeviceAdminReceive을 통해 DeviceOwner를 종료합니다.


  • 참고: DeviceAdmin 간단한 실천 안드로이드 빠른 개발 장치 관리자(DevicePolicy Manager)

    좋은 웹페이지 즐겨찾기