ManagedProfileAdminReceiver.java revision eae8461cfa3a65bd54378d1e63490e9cdadffba8
1eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang/* 2eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * Copyright (C) 2016 The Android Open Source Project 3eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * 4eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * Licensed under the Apache License, Version 2.0 (the "License"); 5eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * you may not use this file except in compliance with the License. 6eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * You may obtain a copy of the License at 7eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * 8eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * http://www.apache.org/licenses/LICENSE-2.0 9eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * 10eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * Unless required by applicable law or agreed to in writing, software 11eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * distributed under the License is distributed on an "AS IS" BASIS, 12eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * See the License for the specific language governing permissions and 14eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang * limitations under the License. 15eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang */ 16eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changpackage com.android.managedprovisioning.e2eui; 17eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 18eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changimport android.app.admin.DevicePolicyManager; 19eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changimport android.content.ComponentName; 20eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changimport android.content.Context; 21eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changimport android.content.Intent; 22eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 23eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changimport android.util.Log; 24eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changimport com.android.managedprovisioning.TestInstrumentationRunner; 25eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 26eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changimport java.util.function.Supplier; 27eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 28eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Changpublic class ManagedProfileAdminReceiver extends AbstractAdminReceiver { 29eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang public static final ComponentName COMPONENT_NAME = new ComponentName( 30eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang TestInstrumentationRunner.TEST_PACKAGE_NAME, 31eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang ManagedProfileAdminReceiver.class.getName()); 32eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 33eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang public static final Intent INTENT_PROVISION_MANAGED_PROFILE = insertProvisioningExtras( 34eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang new Intent(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE) 35eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang .putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, 36eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang COMPONENT_NAME) 37eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang ); 38eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 39eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang private static final String TAG = ManagedProfileAdminReceiver.class.getSimpleName(); 40eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 41eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang @Override 42eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang public void onProfileProvisioningComplete(Context context, Intent intent) { 43eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang DevicePolicyManager dpm = getManager(context); 44eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang dpm.setProfileEnabled(COMPONENT_NAME); 45eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 46eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang boolean isProfileOwner = dpm.isProfileOwnerApp(context.getPackageName()); 47eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang Log.i(TAG, "isProfileOwner: " + isProfileOwner); 48eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 49eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang boolean testResult = isProfileOwner && verifyProvisioningExtras(intent); 50eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang Log.i(TAG, "testResult: " + testResult); 51eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 52eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang sendResult(context, testResult); 53eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang 54eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang // cleanup, remove this user, kill this process. 55eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang dpm.wipeData(0); 56eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang } 57eae8461cfa3a65bd54378d1e63490e9cdadffba8Victor Chang} 58