2017-01-17 3 views
3

Der overview Abschnitt Managed Konfigurationen einrichten Seite besagt Folgendes:Android verwalteter Konfigurationen Anbieter

Apps definieren die verwalteten Konfigurationsoptionen, die remote gesetzt von einem Administrator sein kann. Dies sind willkürliche Einstellungen, die von einem verwalteten Konfigurationsanbieter geändert werden können.
[...]
Der Anbieter für verwaltete Konfigurationen ist eine andere App, die auf demselben Gerät ausgeführt wird.

Dann beschreibt die Seite, wie die verwaltete App einzurichten, aber es gibt keine weiteren Informationen über die „verwalteter Konfigurationen Anbieter app“ - die Anwendung, die, wenn ich richtig verstanden hat, ist verantwortlich für die ACTION_APPLICATION_RESTRICTIONS_CHANGED sendet, wenn Eine Konfiguration wurde geändert.

Meine Frage ist, welche Art von App ist diese "Provider App"? Gibt es eine Android-API, die diese App implementieren sollte, um als Konfigurationsanbieter zu fungieren? Wie hakt diese Companion App die Konfigurationsänderungen in die RestrictionsManager, damit die verwaltete App sie abrufen kann?

Ich frage das hier, weil ich leider keine Referenz in der Android-Dokumentation gefunden habe.

+0

ACTION_APPLICATION_RESTRICTIONS_CHANGED ist eine geschützte Absicht, die nur vom System gesendet werden kann. Es wird nicht vom "Managed Configuration Provider" gesendet. –

Antwort

1

Welche Art von App ist diese "Provider App"?

Die Konfigurationsprovider-App ist eine andere App, die auf dem Gerät ausgeführt wird. Diese App wird normalerweise von einem Administrator gesteuert. Der Administrator übermittelt die Konfigurationsänderungen an die Anbieter-App, und diese App wiederum ändert die Konfigurationen in der verwalteten App.

Werfen Sie einen Blick auf das BasicManagedProfile-Beispiel: https://github.com/googlesamples/android-BasicManagedProfile. Das ist genau diese Art von App.

Gibt es eine Android-API, die diese App implementieren sollte, um als einen Konfigurationsanbieter zu fungieren?

Ja, ist diese App für die Bereitstellung des verwalteten Profil fragen sollte:

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(); 
} 

Wie funktioniert diese Begleit-App die Konfigurationsänderungen in den RestrictionsManager Haken, so dass die verwaltete App in der Lage sein Abrufen sie?

Es nutzt die DevicePolicyManager Beschränkungen für die verwalteten App zu erzwingen:

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

wieder zu sehen, wie dies im Beispielprojekt durchgeführt wird.

Verwandte Themen