2017-01-17 2 views
3

overview раздел Настройка управляемых конфигураций страница состояния следующие:Android управляемые конфигурации поставщика

приложения определяют управляемые параметры конфигурации, которые могут быть удаленно установить администратором. Это произвольные настройки, которые могут быть изменены поставщиком управляемой конфигурации.
[...]
Управляемый поставщик конфигураций - это другое приложение, работающее на том же устройстве.

Затем страница описывает, как настроить управляемое приложение, но нет какой-либо дополнительной информации о: «управляемой приложения конфигурации поставщика» - приложение, которое, если я правильно понял, отвечает за отправку ACTION_APPLICATION_RESTRICTIONS_CHANGED когда конфигурация изменилась.

Мой вопрос в том, какое приложение это «приложение-поставщик»? Есть ли Android API, которое это приложение должно реализовать, чтобы выступать в качестве поставщика конфигураций? Как это приложение-компаньон перехватывает изменения конфигурации в RestrictionsManager, чтобы управляемое приложение могло их восстановить?

Я спрашиваю об этом здесь, потому что, к сожалению, я не нашел ссылки в документах Android.

+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); 

Опять же, обратите внимание на то, как это делается в примере проекта.

Смежные вопросы