集成Air Watch和Android Studio

11

我对AirWatch的概念还很陌生,但已经仔细了解了AirWatch。我查看了以下链接:

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

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

但没有成功。

请问是否有人可以帮助我在Android中集成Air Watch?

目前我已经完成以下步骤:

我已经在https://apidev.awmdm.com中创建了应用程序,并添加了任务分配。我的问题是,如何在Android应用程序中获取在Air Watch控制台中添加的任务分配详细信息。

非常感谢您的帮助。

更新:

我已能够从AIR WATCH CONSOLE创建和推送应用程序到我的设备上。现在我面临的问题是,如果我在AIR WATCH CONSOLE中添加了一些应用程序配置,则无法在我的应用程序中获取这些详细信息。

我已查看以下URL以了解以上情况:

https://appconfig.org/android/,这与https://appconfig.org/ios/非常相似。

我已经按照上述URL中提到的内容进行了实现,但仍然无法获取这些详细信息。如果我哪里做错了,请告诉我。

我知道在Air watch控制台中传递的键值对将出现在iOS的com.apple.configuration.managed键中。任何人都知道这些键值对将如何出现吗?据我所知,它们将通过Restriction Manager进行处理。但是不知道如何在Android中处理。

更新:

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 方法:

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);

用户列表:

enter image description here

当我尝试其他命令时:

enter image description here

更新:

创建了一个示例应用程序并发布到Play商店。 应用程序链接如下,

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

现在,它是一个Play商店应用程序。 当我发送应用程序配置但无法在应用程序中接收它时。 它仍然从应用程序给我一个空绑定。

真的很感谢您的帮助。

enter image description here

非常感激您的帮助。

2个回答

2
除了AirWatch资源,该资源告诉您如何创建应用程序并设置应用程序配置、键值对以推送到您的设备外,您还需要查看Android限制管理器API。按照链接中描述的步骤操作。
整个过程是这样的,将您的MDM设置为AirWatch后,AirWatch控制AndroidForWork环境。然后,AirWatch从AirWatch控制台管理设备,并将应用程序配置推送到AndroidForWork中的您的设备。您需要实现Android限制管理器才能访问由您的MDM传递给您的这些数据。市场上的所有MDM都是同样的情况。
更新:
为了在开发阶段将您的应用程序安装到工作容器中,您可以使用adb将其从个人容器复制到工作容器
首先,列出设备中的所有活动用户:
./adb shell pm list users

稍后,从用户列表中找到“工作用户的ID”并将其与您的应用程序包名称和应用程序主要活动一起设置在下面的命令中。
./adb shell am start —user 13 -n “your.apps.package.name/your.main.activity.package.name”

13在命令中是工作用户ID。在我的情况下,它是13。

有关Managed Profiles中./adb命令的更多信息,请参见this link并查看页面底部。


1
另外要提到的是,就我所看到的,您正在尝试通过它的标题而不是您在 XML 文件中定义的“键”来获取“Manager Server”的值。您能否调试您的应用程序并检查 bundle 实例?查看您提供的是否为错误的键或者完全为空? - osayilgan
1
还有一件事需要提醒,当您将应用程序安装到设备上时,它不会自动安装到工作配置文件中。您确定该应用程序在“工作”容器中,例如应用程序图标上有小的工作图标吗? - osayilgan
嘿,你能帮我一下吗? - Manu
@ManoharPerepa 所以你有两个选择; 1- 如果你在Google Play发布应用程序,并且AirWatch Admin将该应用程序列入“Google Play for Work”的白名单,那么您可以直接从工作容器中的Google Play应用程序下载它。由于您仍在开发应用程序,因此这将是以后的事情。现在,在您将应用程序安装到设备后,您可以使用ADB将应用程序复制到工作容器中。 - osayilgan
1
@GeorgeHuang,你在restriction.xml文件中定义了用户名吗?如果是的话,这是配置的第一部分。你需要进入MDM提供商的控制面板,无论是Airwatch还是其他什么,确保你在那里提供了相同的键值对。 - osayilgan
显示剩余18条评论

1
有几种不同的方法可以与AirWatch集成,这取决于您尝试使用的技术集。根据您发布的内容,我认为以下两种方法最相关:
  1. AirWatch SDK
  2. AppConfig标准
这两种方法都可以实现类似的功能,但每种方法都有不同的部署要求。听起来您已经选择了第二种方法,即使用AppConfig标准和Google提供的本机API,让应用程序读取通过AirWatch传递的配置值。
需要注意的一点是,在Android上使用AppConfig标准方法需要设备支持“Android for Work”注册,这是Google发布的一个相对较新的管理协议。值得注意的是,AirWatch支持Android for Work注册,因此可能只是需要将您的AirWatch测试实例配置为“Android for Work注册”,而不是传统的旧版Android注册协议。有关Android for Work的更多信息,请参见此处: https://enterprise.google.com/android/solutions/personal/ 如果您已经是AirWatch的客户,但还没有在他们的资源门户网站上创建帐户,那么在此处创建可能会有所帮助,以便获取有关如何在AirWatch中设置Android for Work的文档。https://resources.air-watch.com
我希望这可以帮到您。

https://resources.air-watch.com。登录后链接无法使用。我的设备已经注册了Android for Work。现在,请问我是否需要从Air Watch控制台向应用程序发送一些设置? - Manu
我所需要的是,在AirWatch控制台中添加应用程序时,我会在控制台中添加一些应用程序配置详细信息。我该如何获取已添加到控制台的这些详细信息并将其应用于Android应用程序? - Manu
iOS开发人员可以通过com.apple.configuration.managed键获取设置。那么安卓开发人员有没有办法获取这些信息呢? - Manu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接