Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Integrating Air Watch Android Studio

I am very much new to AirWatch Concept but had gone thoroughly about AirWatch. I have gone through the following links,

http://developer.air-watch.com/android/application-configuration-with-the-android-sdk/

http://developer.air-watch.com/android/android-sdk-setup/

but in vain.

Could anyone please help me regarding the integration of Air Watch in Android ?

Things i have done so far,

I have created app in the https://apidev.awmdm.com, and i have added assignemnts. The question here is, How can i get the assignment details in my android application that were added in the Air Watch Console.

Help is really appreciated.

Update:

I am able to create and push the application from AIR WATCH CONSOLE to my Device. Now, the issue i am facing is, If i am adding some application configuration in the AIR WATCH CONSOLE, i am not able to get those details in my application.

I have gone through the below Url for the above scenario,

https://appconfig.org/android/ which is very much similar to https://appconfig.org/ios/

I have implemented those things that were mentioned in the above url but still then i am not able to get those details.Please let me know if i am wrong anywhere.

I got to know that the key value pairs that were being passed in Air watch console will be coming into com.apple.configuration.managed key in iOS. Does any one have an idea that how these key value pairs will come. As far as i know, they will be handled via Restriction Manager. But no idea/clue how to handle in Android.

Updated:

xml/app_restrictions.xml:

<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <restriction
        android:key="ManagedServer"
        android:restrictionType="string"
        android:title="Managed Server"
        tools:ignore="ValidRestrictions" />

    <restriction
        android:key="@string/mdm_key_managed_server_name"
        android:restrictionType="string"
        android:title="@string/mdm_key_managed_server_url"
        tools:ignore="ValidRestrictions" />
    <restriction
        android:key="@string/mdm_key_managed_server_url"
        android:restrictionType="string"
        android:title="@string/mdm_key_managed_server_url"
        tools:ignore="ValidRestrictions" />

</restrictions>

oncreate Method :

IntentFilter restrictionsFilter =
                new IntentFilter(Intent.ACTION_APPLICATION_RESTRICTIONS_CHANGED);

    BroadcastReceiver restrictionsReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

            // Get the current configuration bundle
            Bundle appRestrictions = myRestrictionsMgr.getApplicationRestrictions();

            // Check current configuration settings, change your app's UI and
            // functionality as necessary.
            Toast.makeText(LoginActivity.this, "Reciever Called", Toast.LENGTH_LONG).show();
            RestrictionsManager myRestrictionsMgr =
                    (RestrictionsManager)
                            getSystemService(Context.RESTRICTIONS_SERVICE);
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                if (myRestrictionsMgr != null) {
                    Bundle appRestrictions = myRestrictionsMgr.getApplicationRestrictions();
                    if (appRestrictions != null) {
                        if (appRestrictions.containsKey("ManagedServer")) {
                            String mConfigDetails = appRestrictions.getString("Managed Server");
                            Toast.makeText(LoginActivity.this, "" + mConfigDetails, Toast.LENGTH_LONG).show();
                        }
                    }
                }
            }
        }
    };

    registerReceiver(restrictionsReceiver, restrictionsFilter);

List of Users:

enter image description here

When i am actually trying the other command:

enter image description here

Update:

Created a sample app and published to Play Store. App link as follows,

https://play.google.com/store/apps/details?id=com.manu.samplemdm

Now, its a play store app. When I am sending Application Configuration but unable to receive it in the Application. Its giving me still empty bundle from the application.

Help would be really appreciated.

enter image description here

Help is really appreciated

like image 770
Manu Avatar asked Feb 08 '17 12:02

Manu


1 Answers

Beside AirWatch Resources, which tells you how you can create an app and set the app configurations,key-value pairs, to push to your devices, You need to check out Android Restriction Manager API. Follow the steps described in the link.

How the whole process works is, AirWatch controls AndroidForWork environment after you set your MDM as AirWatch. And then, AirWatch manages the device from AirWatch console and it pushes the App Configuration to AndroidForWork in your device. You need to implement Android Restriction Manager to access to these data passed you by your MDM. It goes same for all of the MDMs in the Market.

Update:

In order to install your app into Work Container in the development phase, you can use adb to copy it from Personal Container to Work Container.

First, list all of the active users in the device:

./adb shell pm list users

And later, find the Work User's ID from the List of Users and set it in the command below along with your app's package name and App's Main Activity.

./adb shell am start —user 13 -n “your.apps.package.name/your.main.activity.package.name”

13 up there in the command is the Work User's ID. In my case, it's 13.

For more information about ./adb commands in Managed Profiles, see this link and check the most bottom of the page.

like image 79
osayilgan Avatar answered Sep 22 '22 02:09

osayilgan