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