Create layout
This section describes how to create the app layout.
Create the buttons and Textview
This app contains a minimum of 10 buttons.
- toggleAdminBtn — Prompts the user to activate device administrator for the app.
- activateLicenseBtn — Activates the Knox KPE license key.
- deactivateLicenseBtn — Deactivates the Knox KPE license key.
- activateBackwardsCompatibleKeyBtn — Only appears for devices running a Knox version between 2.5 and 2.7.1.
- showEnabledPackagesBtn — Shows a list of enabled apps in the TextView.
- showDisabledPackagesBtn — Shows a list of disabled apps in the TextView.
- enableAllDisabledPackagesBtn — Enables all disabled apps on the device.
- enablePackageBtn — Prompts the user to type an app package name to enable.
- disablePackageBtn — Prompts the user to type an app package name to disable.
- toggleBatteryOptimizationWhitelistBtn — Prompts the user to type an app package name to add or remove from the battery optimization whitelist.
- toggleForceStopBlacklistBtn — Prompts the user to type an app package name to add or remove from the force stop blocklist.
Open activity_main.xml and insert the following XML mark up to create your screen layout.
To resolve the @string errors, copy the below files from the sample app into your project.
- background.xml — app\src\main\res\drawable\Background
- strings.xml — app\src\main\res\values\strings
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainpage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.samsung.knox.example.appmanagement.MainActivity">
    <TextView
        android:id="@+id/logview_id"
        android:gravity="bottom"
        android:layout_width="320dp"
        android:layout_height="150dp"
        android:textColor="#3F51B5"
        android:background="@drawable/background"
        android:scrollbars="vertical"
        android:paddingStart="10dp"
        android:paddingEnd="10dp"
        android:layout_marginTop="22dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
    <ScrollView
        android:id="@+id/scrollView"
        android:layout_marginTop="5dp"
        android:layout_below="@id/logview_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <Button
                android:id="@+id/toggleAdminBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:text="@string/activate_admin" />
            <Button
                android:id="@+id/activateLicenseBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_alignStart="@+id/toggleAdminBtn"
                android:layout_below="@+id/toggleAdminBtn"
                android:text="@string/activate_license" />
            <Button
                android:id="@+id/deactivateLicenseBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_alignStart="@+id/activateLicenseBtn"
                android:layout_below="@+id/activateLicenseBtn"
                android:text="@string/deactivate_license" />
            <Button
                android:id="@+id/activateBackwardsCompatibleKeyBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/deactivateLicenseBtn"
                android:layout_alignStart="@+id/deactivateLicenseBtn"
                android:text="Activate backwards compatible key"
                android:visibility="gone"/>
            <Button
                android:id="@+id/showEnabledPackagesBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/activateBackwardsCompatibleKeyBtn"
                android:layout_alignStart="@+id/activateBackwardsCompatibleKeyBtn"
                android:text="@string/show_enabled_apps"/>
            <Button
                android:id="@+id/showDisabledPackagesBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/showEnabledPackagesBtn"
                android:layout_alignStart="@+id/activateLicenseBtn"
                android:text="@string/show_disabled_apps"/>
            <Button
                android:id="@+id/enableAllDisabledPackagesBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/showDisabledPackagesBtn"
                android:layout_alignStart="@+id/activateLicenseBtn"
                android:text="@string/enable_all_disabled_apps"/>
            <Button
                android:id="@+id/enablePackageBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/enableAllDisabledPackagesBtn"
                android:layout_alignStart="@+id/activateLicenseBtn"
                android:text="@string/enable_given_app"/>
            <Button
                android:id="@+id/disablePackageBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/enablePackageBtn"
                android:layout_alignStart="@+id/activateLicenseBtn"
                android:text="@string/disable_given_app" />
            <Button
                android:id="@+id/toggleBatteryOptimizationWhitelistBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/disablePackageBtn"
                android:layout_alignStart="@+id/activateLicenseBtn"
                android:text="@string/toggle_battery_optimization_whitelist" />
            <Button
                android:id="@+id/toggleForceStopBlacklistBtn"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/toggleBatteryOptimizationWhitelistBtn"
                android:layout_alignStart="@+id/activateLicenseBtn"
                android:text="@string/toggle_force_stop_blacklist" />
       </RelativeLayout>
    </ScrollView>
</RelativeLayout>
Your device’s screen now shows 10 buttons (11 if your device is running a Knox version between 2.5 and 2.7.1):
- ACTIVATE ADMIN
- ACTIVATE LICENCE
- DEACTIVATE LICENCE
- SHOW ENABLED APPS
- SHOW DISABLED APPS
- ENABLE ALL DISABLED APPS
- ENABLE GIVEN APP
- DISABLE GIVEN APP
- TOGGLE BATTERY WHITELIST
- TOGGLE FORCE STOP BLACKLIST Later, you’ll assign methods to these buttons to control their respective actions. The TextView at the top of the screen displays log messages.


Create the Package_Name_Input layout
In the Android view, navigate to the res folder, then to the Layout folder. Create a new Layout resource file and name it prompt_user_package_name.xml.
Open the prompt_user_package_name.xml file. Then, insert the following XML mark up to create your Package_Name_Input layout.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/prompt_user_package_name"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:paddingTop="20dp"
        android:paddingLeft="25dp"
        android:paddingRight="25dp"
        android:paddingBottom="10dp"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/PackageNametxt"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:text="@string/package_name" />
    <EditText
            android:id="@+id/PackageNamedtxt"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:layout_below="@id/PackageNametxt"
            android:hint="@string/package_name_hint" />
    </RelativeLayout>
</RelativeLayout>
The EditText shown below is used to receive package name inputs from the user.

For detailed information on creating Android layouts, see Google’s documentation on how to Build a Simple User Interface.
Tutorial progress
You’ve completed 1 of 7 steps!
NextOn this page
Is this page helpful?