我对AirWatch Concept非常陌生,但对AirWatch进行了彻底的了解。我已经浏览了以下链接,
http://developer.air-watch.com/android/application-configuration-with-the-android-sdk/
http://developer.air-watch.com/android/android-sdk-setup/
但徒劳无功。
有人可以帮我解决Air Watch在Android中的集成问题吗?
到目前为止我所做的事情,
我已经在https://apidev.awmdm.com创建了应用,并且我添加了assignemnts。这里的问题是,如何在我的Android应用程序中获取Air Watch Console中添加的分配详细信息。
非常感谢帮助。
更新:
我能够将AIR WATCH CONSOLE中的应用程序创建并推送到我的设备。现在,我面临的问题是,如果我在AIR WATCH CONSOLE中添加一些应用程序配置,我无法在我的应用程序中获取这些详细信息。
我已经通过以下网址了解上述情况,
https://appconfig.org/android/与https://appconfig.org/ios/
非常相似我已经实现了上面提到的那些东西,但是我仍然无法获得这些细节。如果我在任何地方都错了,请告诉我。
我知道在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);
用户列表:
当我实际尝试其他命令时:
更新
创建了一个示例应用并发布到Play商店。 App链接如下,
https://play.google.com/store/apps/details?id=com.manu.samplemdm
现在,它是一个Play商店应用程序。当我发送应用程序配置但无法在应用程序中接收它时。它给了我应用程序中的空包。
非常感谢帮助。
非常感谢帮助
答案 0 :(得分:1)
除了AirWatch Resources,它告诉您如何创建应用并设置应用配置,键值对,以推送到您的设备,您需要查看Android Restriction Manager API.按照链接中描述的步骤
整个过程如何运作,AirWatch在您将MDM设置为AirWatch后控制AndroidForWork环境。然后,AirWatch从AirWatch控制台管理设备,并将App Configuration推送到设备中的AndroidForWork。您需要实施Android限制管理器才能访问MDM传递给您的这些数据。对于市场中的所有MDM来说都是一样的。
<强>更新强>
要在开发阶段将您的应用安装到Work Container,您可以使用adb
将其从Personal Container
复制到Work Container
。
首先,列出设备中的所有活跃用户:
./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。
有关托管配置文件中./adb
命令的详细信息,请参阅this link并查看页面底部的最新信息。
答案 1 :(得分:0)
有几种不同的方法可以与AirWatch集成。这取决于您尝试使用的技术集。根据我在帖子中看到的内容,我认为这些是与您最相关的2个:
这两种方法都可以实现类似的功能,但每种方法都有不同的部署要求。听起来你已经采用了第二种方法,即使用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
我希望这会有所帮助。