簡體   English   中英

Android托管配置提供商

[英]Android managed configurations provider

設置托管配置”頁面的概述部分指出以下內容:

應用程序定義可由管理員遠程設置的托管配置選項。 這些是可由托管配置提供程序更改的任意設置。
[...]
托管配置提供程序是在同一設備上運行的另一個應用程序。

然后該頁面描述了如何設置托管應用程序,但沒有關於“托管配置提供程序應用程序”的任何進一步信息 - 如果我理解正確,則負責在配置更改時發送ACTION_APPLICATION_RESTRICTIONS_CHANGED的應用程序。

我的問題是這個“提供商應用程序”是什么類型的應用程序? 這個應用程序是否應該實現任何Android API才能充當配置提供程序? 這個配套應用程序如何將配置更改掛鈎到RestrictionsManager ,以便托管應用程序能夠檢索它們?

我在這里問這個,因為很遺憾我沒有在Android文檔中找到任何參考。

這個“提供商應用程序”是什么類型的應用程序?

配置提供商應用是在設備上運行的另一個應用。 此應用通常由管理員控制。 管理員將配置更改傳達給提供者應用程序,然后此應用程序會更改托管應用程序上的配置。

看一下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);

再次,看看如何在示例項目中完成此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM