Android for work - 如何检查我的应用程序是否在工作配置文件中运行?

标签 android

我正在创建一个应用程序,如果它在工作配置文件中运行,则需要有不同的行为。

有可能知道吗?

文档对此一无所知,我已经尝试添加一个仅在工作配置文件中可用的限制并且它有效,但我需要一个无需管理员采取任何操作的解决方案。

Android 工作信息: http://www.android.com/work/

Android 工作文档: https://developer.android.com/training/enterprise/index.html

最佳答案

我找到了一个解决方案: 如果 isProfileOwnerApp 为一个包名称返回 true,这意味着您的应用程序(已标记)正在工作配置文件上运行。 如果您的应用在正常模式下运行(无徽章),即使有工作配置文件,isProfileOwnerApp 也会为所有管理员返回 false。

DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
List<ComponentName> activeAdmins =   devicePolicyManager.getActiveAdmins();
if (activeAdmins != null){
   for (ComponentName admin : activeAdmins){
      String packageName=  admin.getPackageName();
      Log.d(TAG, "admin:"+packageName);
      Log.d(TAG, "profile:"+ devicePolicyManager.isProfileOwnerApp(packageName));
      Log.d(TAG, "device:"+ devicePolicyManager.isDeviceOwnerApp(packageName));
   }
}

关于Android for work - 如何检查我的应用程序是否在工作配置文件中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30442121/

相关文章:

java - 获取蓝牙信号强度

android - 检测android是否连接到互联网

android - 如何绕过 Powershell 脚本中的安装向导直接启动 Android Studio 的可移植安装?

Android:应用程序全局 onPause() 和 onResume()?

android - 如何在 Android 布局编辑器中打开布局 xml 文件?

android - 视频插页式广告是否使用大量堆空间,可能导致堆崩溃

c# - 沿 Y 位置移动玩家

android - 无法合并 dex Ionic 3

java - 如何将回历日期转换为公历日期,反之亦然

java - AsyncTask 测试连接