问题标签 [device-owner]

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 投票
3 回答
6996 浏览

android - 错误:未知管理员:ComponentInfo

清单文件可以在这里找到。

DeviceAdminReceiver 类可以在这里找到

agent_device_xml 定义如下:

命令执行和错误:

这是日志猫。

如何解决此问题以使应用程序成为设备所有者。

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 投票
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 回答
621 浏览

android - 为什么重启手机后全局代理设置被清除?

我已经构建了一个应用程序,该应用程序曾经设置为设备所有者转身并使用 setRecommendedGlobalProxy() 函数设置全局代理设置,如下所示:

在我重新启动手机然后全局代理设置消失之前,这一切都很好。如果我通过ConnectivityManager.getDefaultProxy()检查全局代理设置,它会返回应用程序之前设置的代理 pac url,但即便如此,也没有网络流量被代理。

有趣的是,如果我转到设置 -> Google -> 安全 -> 验证应用程序,禁用“扫描设备以查找安全威胁”,重新启动设备,清除全局代理设置,然后重置全局代理设置,它们将一直有效,直到我重新-启用“扫描设备以查找安全威胁”并重新启动它。这对我来说毫无意义,因为它明确指出,如果发现任何安全风险,我会收到通知,而且我肯定还没有看到任何通知。

有几点值得一提:

  1. 我已经在各种设备上进行了测试,并且可以在所有设备上重现该问题。

  2. 正确签署 apk 然后安装它并不能解决问题。

  3. 一旦全局代理设置被破坏,我必须先清除然后重置它们,然后它们才能再次正常工作。

任何关于我做错了什么的建议或可能的想法都将受到欢迎!

0 投票
0 回答
809 浏览

android - 锁定任务模式 Android 5.0 Launcher 不启动应用程序

我正在为 Android 5+ (>= API 21) 构建一个 Launcher-Kiosk 应用程序,使用设备所有者来设置设备,管理允许使用的应用程序列表,自动启动 Kiosk。应用程序位于 GridView 中。用户单击一个应用程序图标,它会启动该应用程序。

到目前为止,一切都很好。

但是,从这个周末开始,当我处于信息亭模式时,应用程序不会启动。启动器没问题,如果我禁用信息亭模式,应用程序就会启动。

它不再适用于 Android 5(6+ 可以)。使用 API 21 在不同的设备和模拟器上进行了尝试。

我多次检查了我的应用程序的源代码。周末没有任何变化。我已经尝试过以前版本的代码,它不再工作了。我尝试了这个示例,添加了一个按钮来启动应用程序并添加了PackageNamein setLockTaskPackages. 不工作。即使是 Test-DPC 也不允许没有 API 23+ (Android M) 的信息亭模式

我创建了一个新的 Android 项目,只是为了尝试不使用其余代码,但也无法正常工作。这是代码(简单的新项目,一键启动应用程序,应用程序通过 adb 设置为设备所有者):

如果禁用任务锁,电子邮件应用程序将启动。当任务锁打开时,它不会。

它以前工作过。你有什么想法,怎么可能?

如果您需要更多我的代码,请告诉我...

非常感谢 !:)

0 投票
2 回答
757 浏览

android - 有没有办法让安卓应用禁用所有用户帐户的相机,而不是让设备所有者

我们有 android 应用程序作为禁用设备相机的企业应用程序。当用户切换到访客用户或类似功能时,此功能会中断。将应用程序作为设备管理员是不够的,我们找到了一种解决方案,即使用 nfc-Provisioning 和类似方法使应用程序设备所有者,但这需要设备处于出厂重置模式。那么除此之外还有其他方法可以帮助我们在所有配置文件中禁用相机,而无需将应用程序恢复出厂设置。从用户的角度来看,我相信这不是一种闲置的方法。

0 投票
2 回答
5322 浏览

android - 无法停用此设备管理员

让应用程序授予设备管理权限,在尝试卸载时转到设备管理员屏幕,但停用此设备管理员文本的可见性选项很暗,我无法停用。

0 投票
1 回答
316 浏览

android - 如何在 Android 5.0 生产设备中启用任务锁定

我有一个适用于我公司(企业)拥有的设备的应用程序,它作为一次性应用程序工作,因此它会锁定自身并成为一次性应用程序,因为它需要作为设备所有者启用,用于测试我正在使用 adb shell 命令和有用。

我的问题是如何在生产中实现它,以便我的企业能够根据需要安装和使用它。