2017-01-17 7 views
3

관리 관리 구성 다음 페이지 상태 설정 overview 섹션안드로이드는 구성 공급자

앱이 될 수 관리 구성 옵션 원격 관리자가 을 설정 정의합니다. 이는 관리 구성 공급자가 을 변경할 수있는 임의의 설정입니다.
[...]
관리 구성 공급자는 동일한 장치에서 실행되는 다른 응용 프로그램입니다.

그런 다음 페이지는 관리 응용 프로그램을 설정하는 방법에 대해 설명하지만,에 대한 자세한 정보는 더는 없다 "관리 구성 공급자 응용 프로그램"- 내가 제대로 이해한다면, 응용 프로그램을의 ACTION_APPLICATION_RESTRICTIONS_CHANGED 때를 보내는 책임이 있습니다 구성이 변경되었습니다.

제 질문은이 "공급자 응용 프로그램"이란 어떤 종류의 응용 프로그램입니까? 이 앱이 구성 제공자 역할을 수행하기 위해 구현해야하는 Android API가 있습니까? 이 컴패니언 앱은 구성 변경 사항을 RestrictionsManager에 어떻게 연결하여 관리되는 앱에서이를 검색 할 수 있습니까? 불행하게도 나는 안드로이드 문서에 대한 참조를 발견하지 않았기 때문에

나는 여기를 요구하고있다.

+0

ACTION_APPLICATION_RESTRICTIONS_CHANGED는 시스템에서만 보낼 수있는 보호 된 의도입니다. "관리되는 구성 제공자"가 전송하지 않습니다. –

답변

1

이 "제공 응용 프로그램"응용 프로그램의 어떤 종류입니까?

구성 제공자 응용 프로그램은 장치에서 실행중인 다른 응용 프로그램입니다. 이 앱은 일반적으로 관리자가 관리합니다. 관리자는 구성 변경 사항을 공급자 앱에 전달하고이 앱은 관리되는 앱의 구성을 변경합니다.

는 BasicManagedProfile 샘플에서보세요 : https://github.com/googlesamples/android-BasicManagedProfile. 이것은 정확히이 종류의 앱입니다.

구성 제공자로 작동하려면이 앱에서 구현해야하는 Android API가 있습니까?

예,이 앱이 관리 프로비저닝 프로파일을 요청해야합니다 :

Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE); 
intent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, 
         activity.getApplicationContext().getPackageName()); 
if (intent.resolveActivity(activity.getPackageManager()) != null) { 
    startActivityForResult(intent, REQUEST_PROVISION_MANAGED_PROFILE); 
    activity.finish(); 
} else { 
    Toast.makeText(activity, "Device provisioning is not enabled. Stopping.", 
                Toast.LENGTH_SHORT).show(); 
} 
관리 응용 프로그램이 할 수 있도록이 동반자 애플 리케이션의 RestrictionsManager로 구성 변경 사항을 후크 않는 방법

을 검색 하시겠습니까?

그것은 관리 응용 프로그램에 대한 제한을 적용 할 DevicePolicyManager을 사용

다시
DevicePolicyManager manager = (DevicePolicyManager) getActivity().getSystemService(Context.DEVICE_POLICY_SERVICE); 

Bundle settings = new Bundle(); 
settings.putBoolean("downloadOnCellular", true); 

manager.setApplicationRestrictions(
     BasicDeviceAdminReceiver.getComponentName(getActivity()), 
     PACKAGE_NAME_MANAGED_APP, settings); 

는이이 샘플 프로젝트에서 수행되는 방법을 살펴 보자.