问题标签 [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.
android - 是否有可能在 Android Lollipop 中有一个不共同存在的“个人资料所有者”应用程序
Lollipop API 提供了 2 个新功能“配置文件所有者”和“设备所有者”(http://developer.android.com/about/versions/android-5.0.html#Enterprise)。在它们之间,它们只提供了我需要的应用程序功能,父母可以使用它来控制孩子的设备活动。每个的设置流程是:
设备所有者
在设备设置期间,您可以使用 NFC 告诉 Android 您希望您的应用成为设备所有者。然后,Android 从 URL 下载应用程序,设备被加密并以设备所有者的身份使用应用程序进行配置。因此,对于从 Google Play 安装我的应用程序的人,我需要该应用程序提示他们将设备恢复出厂设置,然后在另一台设备上安装另一个应用程序,然后 NFC 将它们碰撞在一起。随着设置流程的进行,这远非理想。但是一旦设置完成,设备所有者 API 就会为此用例提供非常丰富的功能集。
个人资料所有者
对此的设置更加直接:用户从 Google Play 安装应用程序,然后可以提示授予应用程序配置文件所有者权限。如果用户同意,设备将由 Android 加密,并且在重新启动后,设备有 2 个使用相同启动器(主屏幕)的“共同存在”配置文件。设置可能更直接,但最终结果并不是我真正需要的,因为该应用程序只能控制托管配置文件下的应用程序。
问题
所以我想我实际上有两个问题:是否可以制作一个控制整个用户个人资料的个人资料所有者应用程序,即不是共同存在的托管个人资料?或者是否可以使用更简单的设置流程制作设备所有者应用程序,不需要恢复出厂设置和 NFC 碰撞(不能生根)?这两种方法之间的一些中间立场将是理想的。
android - 如何查找设备管理器策略中是否禁用了 Wi-Fi 配置?
我想知道是否有办法通过代码确定是否启用/禁用了 wifi 配置。我可以使用以下代码:
但我不想使用这段代码。
通常要查找 wi-fi 配置策略是否被禁用,我们可以进入 wi-fi 设置。如果我们可以看到可用和/或连接的 wi-fi 网络列表,则意味着我们的设备所有者启用了 wi-fi 配置。当设备所有者禁用 wi-fi 配置时,我们看不到可用/已连接网络的列表。但是在这种情况下,如果我们已经连接到某个网络,那么我们仍然可以通过该网络访问 Internet。
请让我知道是否有任何其他方法可以找出 wi-fi 配置状态。
android - 创建新用户后设置
从我的设备所有者应用程序中,我想创建一个新用户并直接切换到它。现在,我只能创建一个新用户,切换到它,但是:
- 它把我带到了键盘保护屏幕,我需要手动解锁。
- 然后,告诉我设置新创建的用户 - 带有名字、姓氏、WIFI 设置和 3 个 Google 使用统计/报告选项。
我想知道是否有办法以编程方式设置新用户并直接切换到它的“会话”。我想以编程方式避免“解锁”页面,并使用名称、WIFI 设置以及可用的应用程序和安全设置预先设置新创建的用户。
这是我到目前为止所做的:
我在Google官方页面上找不到任何有关设备所有者应用程序或配置文件应用程序的文档。任何人都可以帮助我或指向我有用的链接吗?
android - 为什么在设置所有者设备应用时无法创建受限配置文件?
我最近注意到,当设置设备所有者应用程序时,无法创建受限配置文件。
第一种情况:当我的设备所有者应用程序未设置时。
从Settings>Users:我可以"Add user or Profile",然后在User或Restricted Profile之间进行选择。
第二种情况:设置我的设备所有者应用程序时。
从设置>用户:我只能“添加用户”,然后我得到确认以创建新用户。在第二种情况下,无法创建受限配置文件。
我想知道为什么它在这种情况下不可用,以及在这种情况下我怎么可能创建一个受限的配置文件?
我的问题的第二部分是:如何使用现有的DevicePolicyManager API以编程方式创建受限配置文件或等效行为(据我所知,没有公共 API 可以创建受限配置文件)?
更新: 我制作了一个示例应用程序来说明这一点。它在Github上可用。
重现步骤:
- 编译应用程序
- 将应用程序上传到您的设备
- 使用 dpm 命令行工具将应用程序设置为设备所有者:
adb shell dpm set-device-owner com.mytest.minimalistdeviceowner/.DeviceAdminRcvr
. - 检查配置文件的创建在设置>用户中不可用
- 通过单击应用程序中的“取消设置设备所有者”,取消将应用程序设置为设备所有者。
- 检查创建现在在设置>用户中可用
android - 在 Android Lollipop 中未使用 NFC 的设备所有者
我想在不使用 NFC 的情况下将我的应用程序设为设备所有者。在开发人员博客上提到,要让设备拥有者必须使用 NFC,但我发现没有 NFC 也是可能的,正如 alex_au 在此评论中提到的那样。
我已经尝试过了,但没有成功。有没有人能够做到这一点?
android - Lollipop Device-Owner App 会破坏手机
多亏了这样的答案,我才能够在我的智能手机上设置一个设备所有者应用程序。这是一个非常基本的测试应用程序,仅用于启用/禁用屏幕固定模式...
无论如何,最后它可以工作,但有一个非常非常糟糕的缺点:我失去了对电话功能的所有访问权限
- 没有更多的电话图标,除了在设置 > 应用程序 > 全部
- 如果我打电话给它,它在主叫方响起,但电话根本没有反应......
- 但是状态蜂窝图标表明它具有 3G 网络。
所有这些症状都很奇怪,让我想知道我的小型设备所有者应用程序是否在某个地方锁定了某些东西:有人对此有任何想法或经验吗?
android - 以编程方式固定第 3 方应用程序的屏幕
在获得设备所有权后,我正在尝试实现一种方法来指示设备将任何给定的应用程序锁定到信息亭模式(或屏幕固定模式)。由于我拥有设备所有权,因此不会要求用户获得这样做的权限。
从开发人员网站,简要说明告诉我可以做我正在尝试的事情:
http://developer.android.com/about/versions/android-5.0.html#ScreenPinning
以编程方式:要以编程方式激活屏幕固定,请从您的应用程序调用 startLockTask()。如果请求的应用程序不是设备所有者,则会提示用户确认。设备所有者应用程序可以调用 setLockTaskPackages() 方法以使应用程序无需用户确认步骤即可固定。
这表明作为设备所有者应用程序,我可以在没有用户确认的情况下固定其他应用程序......但我不知道如何。
我已经能够将自己的应用程序置于固定模式。
任何帮助,将不胜感激。
android - 为设备所有者应用程序安装更新
有谁知道当更新发生时,通过 Google Play 分发的设备所有者应用程序的生产行为是什么?
正如我们所知,安装一个设备所有者应用程序需要一些动机并且并不容易:重置为出厂默认设置,然后通过 NFC 为设备提供第二个设备等......所以即使我们认为这一步完成,任何进一步的更新都会涉及这么多痛,每次?
出现这个问题是因为在我的开发设备上,如果之前安装了设备所有者应用程序,我无法重新启动它的更改……除非我将设备重置为出厂设置!
感谢阅读……</p>
android - 为什么 sendBroadcastAsUser(intent,userHandle) 即使在 Android 5.0 中使用 Device Owner 也不起作用?
我已将我的应用程序设为设备所有者并创建了另一个用户。现在我想使用 broadcastAsUser 从主用户广播到另一个用户。
我为此添加了以下权限
Permission Denial:来自 com.sample.deviceadmintest 的广播要求以用户 10 的身份运行,但从用户 0 调用;这需要 android.permission.INTERACT_ACROSS_USERS_FULL 或 android.permission.INTERACT_ACROSS_USERS
我错过了什么吗?提前致谢!
android - 在同一设备上使用 NFC 激活设备所有者
我正在尝试使用@Randy 在GitHub中提供的示例应用程序激活应用程序的设备所有者(感谢 Randy!)。我可以使用 Florent在此处描述的 adb shell dam 命令让 DeviceOwnerCheck 示例应用程序成为设备所有者。但是,由于这仅适用于开发,不能用于生产,因此我需要使用 NFC。我试图使用其他示例应用程序 (NFCProvisioner) 进行 NFC 配置,但看起来我需要 2 台设备来完成此操作?有没有办法可以使用 NFC(或其他东西)在同一设备上将应用程序作为设备所有者提供?