この「プロバイダアプリ」はどのような種類のアプリですか?
設定プロバイダアプリは、端末で実行中の別のアプリです。このアプリは通常、管理者によって制御されます。管理者は設定変更をプロバイダアプリに伝え、このアプリは管理されたアプリの設定を変更します。
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);
が、これはサンプルプロジェクトにどのように行われるかを見てみましょう。
ACTION_APPLICATION_RESTRICTIONS_CHANGEDは、システムによってのみ送信可能な保護されたインテントです。 「管理された構成プロバイダ」によって送信されることはありません。 –