问题标签 [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 投票
1 回答
1145 浏览

android - 锁定任务模式设备所有者应用程序的自动更新

我几乎准备好使用设备所有者配置文件分发将处于锁定任务模式的应用程序,也就是企业所有者单次使用应用程序

我正在考虑分发它并在新版本发布后自动更新它的可能方式。并找到以下选项:

  • 通过 Play 商店分发和更新,因此设备需要一个 Google 帐户才能访问 Play 商店,一旦安装了应用程序,我需要删除该帐户,然后锁定应用程序(我正在使用dpm工具,但同样是对于 NFC),重新添加 Google 帐户并设置“在 Play 商店中自动更新。这有点无聊,因为我必须在 100 多个设备上执行此过程。

  • 在私有服务器上分发并使用 PackageManager 进行更新。使用此选项,我不需要 Play 商店帐户,所有交付过程都在我的私人服务器上进行,我将上传应用程序的 APK 以供设备下载。此外,一旦安装了应用程序并设置了设备所有者,我可以使用PackageManager方法让应用程序从我的私人服务器自动下载和安装新的更新。

  • 使用梅森。正如我在其他 SO 线程上看到的,另一种可能性是使用 Mason,一种允许您管理许多设备的 Web 控制台。没有尝试过,我更喜欢在没有第三方解决方案的情况下控制我的应用程序。

  • Android Enterprise Mobile Manager我不明白这是什么。我试图联系谷歌让我解释成为该计划的一部分有什么好处,但现在仍然没有答案。有人知道更多吗?

现在我将使用 App Store 作为更新机制,因为它似乎工作得很好。有没有人已经面对这个问题并最终找到了一个好的解决方案?

0 投票
1 回答
380 浏览

android - 安卓,开启蓝牙和GPS,有设备所有者权限

在我的应用程序中,我获得了通过 Adb shell 设置的设备所有者权限

现在我可以创建一个 kios 模式环境,允许用户仅与我的应用程序交互。

下一步,我想以编程方式打开蓝牙和定位服务,而不要求任何权限。

在蓝牙的情况下,我只需要通过“你想打开蓝牙吗?” 消息,而与位置有点复杂。

Location to works需要系统权限,然后需要用户开启。

既然我的应用程序处于设备所有者模式,我该如何直接打开它们?

谢谢。

0 投票
0 回答
1761 浏览

android - Android - 如何检查当前设备所有者?

假设我有根设备,我可以通过 adb 设置设备所有者:

那么 - 有没有可能使用 adb 检查当前设备所有者?现在我必须禁用单个应用程序模式并转到安全设置,这对于多个设备来说不是最好的方法。

0 投票
1 回答
5080 浏览

android - Android PackageInstaller,更新后重新打开应用程序

我正在开发一个以设备所有者身份运行的应用程序,我想在其中构建一个自动更新程序。

为此,我使用 PackageInstaller,因为由于我的设备所有者职位,我有权使用它。

更新是正确的,但问题是它不会在更新后重新打开应用程序本身,即使我设置了一个 IntentSender 将操作广播LauncherReceiver.START_INTENT到新的应用程序实例(这将使其启动)。

这是我的接收器:

它已在我的清单中注册:

如果我通过 CLI 调用它,它可以工作:

所以接收器工作但由于某种原因它不能从包安装程序会话提交中工作。该应用程序由于升级而自行关闭,但不会再次打开。

如果我将其更改createIntentSender为:

它实际上打开了电话服务。所以我认为问题在于升级生命周期,因为当广播动作产生时应用程序还没有准备好。

此外,我又做了一次尝试,我创建了一个边应用程序,它只对我的主应用程序调用广播操作,所以我可以调用这个边应用程序,并且通过这个“双步”它实际上可以重新打开刚刚更新的应用程序。问题是我必须安装两个应用程序 =/

有谁能够帮我?有没有办法重新打开刚刚更新的应用程序?

0 投票
5 回答
19690 浏览

android - Not allowed to set the device owner because there are already several users on the device

I was following this tutorial to set the app as device owner. In that tutorial, there is a section 'Using adb to set the device owner'. The tutorial here says that after installing the Kiosk Mode Demo App, run the following command:

This gave me the error:

I followed this SO link and the answer of Diego Plascencia Lara helped me to get rid of

But still the following error is occurring after running the adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver command:

Why is this error happening and how can I remove this? I had earlier tried to set different apps as device owner but I think I did not manage to pull them off entirely and there were always some errors while completing the entire procedure of getting the app running on the device.

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 回答
506 浏览

android - 创建杀死所有以前打开的应用程序的启动器

我有一个简单的启动器,可以在列表视图中列出所有应用程序。我只想要这个启动器中的一个功能;当单击列表视图中的某个项目(例如第 5 个项目)时,我想完全杀死所有以前打开的应用程序,然后打开那里登记的第 5 个应用程序。我不知道我应该寻找什么。我有启动器应用程序作为设备管理员和设备所有者,我认为它与DevicePolicyManager类有关。我也尝试了 finishActivity(int requestcode) 但它没有用。下面是 onItemClick() 监听器:

0 投票
1 回答
420 浏览

android - 设备所有者应用程序/电话通过 NFC 完全访问 Play 商店(而不是 Play for Work)

我有几台设备通过 NFC 配置了设备所有者权限,不涉及 EMM,所有策略均由我的 DPC 设置,在配置期间下载。此时我没有设置谷歌帐户。

手动添加 google 帐户后,所有设备都可以访问 Google Play Store Work Apps(目前仅包含 Google Apps 应用程序),但不能访问常规 Play Store。

有没有办法可以停止将设备限制为 Work Apps Play 商店并授予他们完全访问权限?如果可能的话,我想根本不管理该帐户,而只做诸如禁止恢复出厂设置和更改 WiFi、通话、短信等之类的事情......

这些是我用我的 DPC 设置的政策,也许我误解了他们中的一些人的作用?

我知道可以通过 EMM Api 授予用户对 Play Store 应用程序的访问权限,但是我不能使用 EMM。

0 投票
0 回答
84 浏览

android - 配置没有默认加密的 Android Lollipop 设备

在使用 NFC 进行设备所有者配置时,我无法绕过 Lollipop 设备上的默认加密。

我想要实现的是将android设备配置为设备所有者模式,具有以下要求:

  • 在 Android 版本 5.0 和 5.1 上
  • 在初始设备设置期间通过 NFC 进行配置
  • 不加密设备

这可能吗?

我知道我可以通过额外的意图跳过 SDK 23 及更高版本的加密,但在 Lollipop 上并非如此。此外,可以通过 adb shell 使用 dpm 工具跳过整个过程,但这不是一个选项。

0 投票
2 回答
392 浏览

android - WSO2 EMM 的设备所有者权限

我正在安卓设备上测试 wso2 emm。我已经设置了 EMM 服务器并将一个 android 设备链接到它,只需将设备注册到服务器而不是设置工作配置文件。为了应用限制蓝牙访问等一些策略,代理应用程序应该是设备所有者。如何将我的设备设置为设备所有者?是否只能以编程方式使用“dpm”,或者有什么方法可以通过手机上的应用程序设置来实现?

谢谢