问题标签 [android-for-work]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1373 浏览

wso2 - 允许在 Android Marshmallow 的工作配置文件中安装来自未知来源的应用

我设法设置了 WSO2 EMM 2.2.0 服务器并测试了有效的 emm android 代理。但是,对于“Android for work”,当我尝试推送企业应用程序时,它说“您的管理员不允许安装从未知来源获得的应用程序”。

有没有办法在工作资料中安装来自未知来源的应用程序?

0 投票
1 回答
1502 浏览

android - 如何从 adb shell 命令启动 AFW 徽章应用程序?

在此处输入图像描述我无法从 Adb shell 命令启动 Android For work 应用程序?有人可以举个例子吗?参考附加屏幕,我想启动 Playstore 应用程序。没有徽章 ICON 的 Play 商店应用也具有与有徽章的 Play 商店应用相同的活动信息(com.android.vending/com.google.android.finsky.activities.MainActivity)。而且我无法启动 Badge Play 商店活动。请帮我。

我尝试过使用以下命令: adb shell am start com.android.vending/com.google.android.finsky.activities.MainActivity

它始终仅启动非徽章 Playstore 应用程序。

然后我按照谷歌的 AFW 博客进行了尝试: https ://developer.android.com/work/managed-profiles.html

adb shell pm list users UserInfo{0:Drew:13} running UserInfo{10:Work profile:30} running

adb shell am start --user 10 -n "com.android.vending/com.google.android.finsky.activities.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

所以,我得到了 java.lang.SecurityException: Shell does not have permission to access user 10 错误。请有人帮助我。

0 投票
0 回答
168 浏览

android - 针对多个操作系统版本的设备所有者 NFC 配置;棒棒糖 5.0+

我正在使用 NFC 配置设备。正在配置的目标设备(provisionees)在 Google 向导中(接收设备处于开箱即用或出厂重置状态)并运行 Lollipop 5.0 或更高版本。预配器是一个 Android 设备,它也可以运行 Lollipop 5.0 或更高版本,但可以说它运行的是 Nougat 7.1.2。随着每个 Android 操作系统的发布,新的配置“EXTRAS”被添加到 DevicePolicyManager,而其他配置则被贬低。

是否有关于如何通过 NFC 跨多个操作系统版本定位设备的“最佳实践”?注意:使用 android.os.Build.VERSION.SDK_INT 将不起作用,因为它是提供者的版本,而不是提供者的版本。

主要问题:有没有办法使用单个配置应用程序覆盖所有操作系统版本,而无需在目标(配置者)设备上手动指定操作系统?

一些例子:

  • EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED 是在 API 级别 22 中添加的,而我的目标是 API 级别 21。
  • 在 API 级别 23 中添加了 EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME。在 API 级别 23 中,EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME 已贬值。
0 投票
1 回答
4675 浏览

android - 如何获取我的 APK 的签名校验和?

在使用设备所有者应用程序配置设备时,我想使用签名校验和而不是包校验和。该应用程序将从 http 服务器下载。

这篇文章在使用 EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM 时很棒:预配 Android Lollipop 时出现校验和错误

但我想使用 EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM。请参阅:https ://developer.android.com/reference/android/app/admin/DevicePolicyManager.htm

配置应用程序和设备所有者应用程序都将在 Android O 上运行。

如何获取可在 NFC 的键/值对中使用的应用程序的签名校验和?

0 投票
1 回答
4972 浏览

android - 如何获取仅使用 v2 方案签名的 APK 的签名校验和?

我之前在这里发布了一个关于如何获取我的 APK 的签名校验和的问题: 如何获取我的 APK 的签名校验和?

如果应用程序使用 v1 签名方案或组合 v1/v2 签名方案进行签名,则答案是完美的。(Jar 和完整的 APK 签名)

但是,由于我的应用程序只能在 Android O 或更高版本上运行(它是特定于设备的应用程序),因此我只会使用 APK 签名方案 v2(v2 方案)对其进行签名。

我将使用 EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM。有关详细信息,请参阅:https ://developer.android.com/reference/android/app/admin/DevicePolicyManager.html 。

如何获取我的应用程序的 APK (v2) 签名校验和,我可以在我的键/值对中使用 NFC 配置设备所有者应用程序?

0 投票
2 回答
1500 浏览

android - 如何获取(或绕过)Android DPC 支持库?

我正在尝试为 Android 实现 MDM 客户端应用程序,在 Android For Work 世界中称为设备策略控制器或 DPC。Google 构建 DPC 的文档在此处

记录的过程下载 DPC 支持库开始。不幸的是,他们提供的下载链接(“EMM 社区的技术集成”部分)不起作用:系统提示您使用 Google 帐户登录,但这样做后我看到了:

我们很抱歉...

...但您似乎无权访问此地点或内容。如果您认为您应该有权访问此空间,请尝试使用您的帐户菜单退出并重新登录,该菜单可通过单击此页面右上角的头像访问。如果此问题仍然存在,请通知您的支持代表,我们将进一步排除故障。

其他人也有同样的问题:这里提出了一个问题单,它只有 2 个月大,没有答案,但由于某种原因被标记为假定已回答,然后被忽略。

此处记录的步骤非常清楚地表明 DPC 支持库是该过程的必需部分,并且没有描述使用它的任何替代方法。

那么,我如何获得 DPC 支持库?可以在其他地方获得吗?或者如果失败了,我如何找出它的作用,以便我可以在自己的代码中手动重现这些步骤?


我已经尝试过的一些步骤:

  1. 我已成功注册 EMM 社区并可以访问EMM API(即,我现在从Enterprises.generateSignupUrl得到了有效的响应,不再是可怕的“调用者未注册为 MDM ”。)这本身就是一个漫长且令人沮丧的不透明过程。
  2. 我已经构建并运行了googlesamples/android-testdpc应用程序并查看了源代码。不幸的是,这是一个仅限客户端的演示:它不与 EMM 服务器通信,也不使用 DPC 支持库。具体来说,它不会获取授权令牌以在设备上配置工作配置文件,如此所述。
  3. 我玩过公共 EMM 演示系统及其DPC 应用程序。这似乎做得很好,但由于它是封闭源代码,我无法查看客户端或服务器的代码。
0 投票
1 回答
1311 浏览

android - 如何在可能没有托管配置提供程序的应用中使用托管配置?

我正在开发一个可以在 2 个不同的 Android 环境(消费者和企业市场)中运行的应用程序。可以说它是一个短信应用程序,需要管理十几个配置参数。

第一个环境是没有启用 Android Enterprise (AfW) 功能的标准 Android 设备。因此,没有 EMM (MDM) 可以提供 Android 代理/客户端应用程序作为实现托管配置提供程序的设备/配置文件所有者。

第二种环境是在公司内部。EMM (MDM) 用于管理其公司拥有的所有设备。EMM 是设备或配置文件所有者。它们被设置为使用托管配置并需要远程配置此应用程序。

为了支持这两种情况,这个应用程序应该如何检索配置?

我目前的想法是检查我的应用程序实例是否属于设备或个人资料所有者。如果是这样,我将使用托管配置。如果没有,它将允许使用 SharedPreferences 在设备上、应用内进行配置。

我相信这会奏效,但看起来太像黑客了。它还限制使用设备/配置文件所有者的公司授予其用户控制权。我想随着托管配置采用率的提高,其他 Android 应用程序必须开始遇到这种情况。这种情况有更好的解决方案吗?

0 投票
1 回答
811 浏览

android - 托管配置 XML 文件中 defaultValue 的用途是什么?

我将在我正在开发的应用程序中使用托管配置。

在获得有关此答案的帮助后,我不明白托管配置中如何使用默认值。我的参考是这个链接

在我的“注意”下的参考资料中,Google 说,“托管配置捆绑包包含一个项目,用于托管配置提供者明确设置的每个配置。但是,您不能仅仅因为您在托管配置 XML 文件中定义了一个默认值。 "

我了解,如果托管配置提供程序未明确设置项目,则该项目将不在捆绑包中。但是下一行(最后一行)对我来说并不清楚。

我的主要问题是“托管配置 XML 文件中 defaultValue 的用途是什么”?但我希望答案也能帮助回答或指导我回答这些问题:

  • 谁能读取默认值?
  • 托管应用程序可以读取它吗?如果是这样,怎么做?
  • 托管配置提供程序可以读取它吗?如果是这样,怎么做?
  • 如果配置具有默认值,为什么我不能假设它会存在于包中?托管配置提供者是否负责读取 defaultValue 然后显式设置它?
0 投票
2 回答
1644 浏览

android - AFW 注册后,Android O 无法扩展 webview

我在 Pixel XL 设备中使用最新的 Android O 测试版。这是我在 xml 中的 webview。

这就是它在我的 Activity 类中的使用方式

这是我在资产目录中的 launch_anim_centered.html 文件

launch_anim_1x.gif 文件是一个包含正在旋转的图像的 gif 文件。当我启动应用程序时,运行此活动没有问题。然后我进行 Android-For-Work 注册。注册后,一旦启动应用程序,此活动就无法呈现,并且会抛出这样的异常

此问题仅在 Pixel 和 PixelXL 设备中出现。Nexus 设备工作正常。感谢您提供解决此问题的任何帮助。谢谢编辑:新信息。所以我禁用了 webview 以查看会发生什么,但是当尝试访问 CookieManager.getInstance() 时应用程序崩溃了。这是堆栈跟踪:

我认为真正的问题是 android.content.res.AssetManager.addAssetPathNative(Native Method) 上的 NullPointerException。知道如何解决这个问题吗?

0 投票
3 回答
1636 浏览

android - 是否可以在不注册 EMM 社区的情况下构建 DPC?

由于申请 EMM 集成的过程花费了大量的时间,而且整个过程被那些经历过的幸运者描述为“令人难以置信的痛苦”,我想知道是否绝对需要成为 EMM拥有一个正常工作的设备策略控制器应用程序 (DPC)。

如果你遇到这个问题,请分享经验。

我正在为 COSU 设备开发并希望进入信息亭模式。我知道如何做到这一点的方法的存在,但他们都实现了一堆变通办法 - 这不是一个选择 - 我想要一种可控、安全和健壮的方式来做到这一点。我也不在乎没有远程管理的能力。