问题标签 [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 回答
3020 浏览

android - Android Kiosk 模式 - 防止用户“未经授权”取消固定应用程序

我对 android 很陌生,我目前正在开发一个应该在 KioskMode 下运行的 Android 应用程序,这样普通用户就不能退出应用程序或在它之外做任何事情。
我已经做了什么:

  • 我将我的应用设置为设备所有者
  • 我在 MainActivity 的 onCreate() 方法中“屏幕固定”应用程序作为设备所有者
  • 我在 MainActivity 中有一个按钮,稍后允许管理员通过输入密码退出。调用 stopLockTask()

我现在遇到的问题是,任何用户都可以通过同时长按“返回”和“多任务”按钮来退出屏幕固定,因为应该运行应用程序的平板电脑有硬件按钮,我不能简单地停用这些按钮。(至少我不知道如何在不生根设备的情况下做到这一点)
那么有没有办法停用这个按钮组合以退出屏幕固定,或者一些巧妙的解决方法?我想到的一种方法是在 onLockTaskModeExiting() 的 AdminReceiver 类中重新固定应用程序,但我仍然坚持如何做到这一点。

以下是我的 MainActivity 和 AdminReceiver 类的一些代码片段:
AdminReceiver.java

}

MainActivity.java

非常感谢任何帮助。谢谢!

0 投票
1 回答
987 浏览

android - 设备所有者隐藏的应用未列为已安装

我最近在玩 Android M 的设备所有者功能,更具体的是隐藏应用程序

隐藏一个包后,它不再从包管理器中显示为已安装: context.getPackageManager().getInstalledPackages(0)adb shell pm list packages

有没有列出这些包的替代方法?

Samsung MDM SDK 上的一个类似功能实际上disables是应用程序而不是隐藏它们,因此它停止响应查询意图,但仍列出已安装的包。

0 投票
2 回答
6413 浏览

android - Android:如何在 android 启动时为 Kiosk 模式创建自动启动应用程序

我创建了在 Android 启动时自动启动的 Kiosk 模式应用程序。为了自动启动应用程序,我使用了BOOT_COMPLETED服务/广播。但应用程序在出现主屏幕 (Android) 后 10-15 秒后启动。这不是我想要的状态。我想同时启动应用程序以显示主屏幕。因此,如果没有我的应用程序,用户将无法工作。这是我的目标。我的应用程序是设备所有者应用程序。

这可能吗?如果是这样怎么办?如果不是为什么?

0 投票
1 回答
5949 浏览

android - 没有请求用户操作的 startLockTask()

我想在没有任何用户请求的情况下激活 startLockTask()。所以起初我阅读了这个设备管理 并创建了一个小的示例应用程序。结果,我的应用程序在设备管理员列表中,但是当我调用 startLockTask() 时,它仍然不在静默模式下执行。当我试图这样称呼它时:

我得到下一个例外:java.lang.SecurityException: Admin ComponentInfo{com.hssoft.deviceadmintest/com.hssoft.deviceadmintest.DeviceAdmin} does not own the device

所以我有设备管理员,但我不是设备所有者。我做错了什么,有人可以帮忙吗?这是我的完整应用程序代码:

清单文件:

xml/device_admin.xml:

DeviceAdmin.java:

MainActivity.java:

0 投票
1 回答
1811 浏览

android - 如何将 device_owner 设置为我的 android 应用程序?

我尝试使用以下命令将我的应用程序设置为平板电脑的 device_owner(没有 ROOT 或 NFC):

like 写在很多网站上(因为我必须制作一个 KIOSK APP)。首先我进行了恢复出厂设置,然后我安装了我的应用程序,然后我在 shell 上编写了这个命令,但答案是:

java.lang.IllegalStateException:尝试设置设备所有者,但设备已配置。
  在 android.os.Parcel.readException(Parcel.java:1554)
  在 android.os.Parcel.readException(Parcel.java:1499)
  在 android.app.admin.IDevicePolicyManager$Stub$Proxy.setDeviceOwner(IDevicePolicyManager.java:3212 ) )
  在 com.android.commands.dpm.Dpm.onRun(Dpm.java:82)
  在 com.android.internal.os.BaseCommand 的 com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:114)
  。在 com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 的   com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)的
  com.android.commands.dpm.Dpm.main(Dpm.java:38)运行(BaseCommand.java:47)   。 os.RuntimeInit.main(RuntimeInit.java:249)


现在,如何在不植根平板电脑的情况下解决此问题?

0 投票
3 回答
2450 浏览

android - 启动时的 Android pin 活动

我有一个应用程序将自己注册为默认启动器,并在启动时自动固定自己。

安装应用程序时,这一切都很好。它固定自己,只有后退按钮可见。

问题是当设备第一次启动时,它没有正确固定。我多次看到一系列“屏幕固定”和“屏幕未固定”的祝酒词。“主页”和“最近的任务”按钮仍然可见。

--

运行“adb shell dumpsys activity activities”——最后几行表明它没有被固定:

--

运行 Marshmallow/6.0/23 的测试设备 Asus ZenPad

我依靠 MainActivity 清单属性“lockTaskMode”来固定(而不是 activity.startLockTask()):

任何帮助或指示将不胜感激

0 投票
3 回答
8343 浏览

android - 如何在没有 NFC 和 ADB shell 命令的情况下让我的应用程序设备所有者?

我有一个安装在 100 多台设备上的 android 应用程序。(Android 5.1.1 API22 和 6.0.1 API 23)

https://developer.android.com/reference/android/app/admin/package-summary.html

我浏览了所有这些参考资料,但没有运气。

使用 devicePolicyManager,我收到错误:XXXXX App 不是设备所有者。

我知道有一种方法可以通过 shell 命令 (ADB) 获取设备所有者,但我无法通过 USB 在所有设备上单独执行此操作。

DevicePolicyManager deviceManger = (DevicePolicyManager)Forms.Context.GetSystemService(Context.DevicePolicyService); ComponentName demoDeviceAdmin = new ComponentName(Forms.Context, Java.Lang.Class.FromType(typeof(DeviceAdmin))); deviceManger.SetGlobalSetting(demoDeviceAdmin, "wifi_device_owner_configs_lockdown", "1");

0 投票
2 回答
6049 浏览

android - 我无法在设备上为我的应用设置设备所有者

我一直在努力通过 adb shell dpm 命令将我的应用程序设置为设备所有者,但出现了错误

autolock.AdminReceiver}

这是我的活动和清单

清单:

我不确定为什么错误仍然存​​在,是因为一台设备只能有一个应用程序被设置为设备所有者?另一个问题是 adb 命令可以在没有帐户的设备上实现并连接到 pc 以便在终端中输入命令。在设备没有root的情况下,我可以通过应用程序中的代码来完成吗,因为我有几个设备并且很难逐个设置它们,谢谢

0 投票
1 回答
1317 浏览

java - 在设备所有者应用中启用 GPS

根据API 文档,设备所有者应用程序可以通过以下调用修改一些“安全设置”,特别是LOCATION_MODE :

由配置文件或设备所有者调用以更新 Settings.Secure 设置 [...]

设备所有者还可以更新以下设置:LOCATION_MODE

根据我的理解,LOCATION_MODE 的值是一个整数(分别为 0 表示禁用位置,1 表示仅 GPS,2 表示省电模式,3 表示高精度)。

我的问题是String value参数的类型。LOCATION_MODE 需要一个 int,但 API 需要一个 String。

我错过了什么 ?

0 投票
1 回答
2264 浏览

android - 如何在 Android Things 上访问 HardwarePropertiesManager

我安装了一个带有 android things 开发者预览版的树莓派。

我想监控覆盆子本身的 CPU 温度和使用情况。

我的方法是像这样使用 HardwarePropertiesManager:

此调用需要设备所有者或配置文件所有者权限(或 vr)。

我从未使用过设备所有者,所以我按照这些链接的说明进行操作:

Android Kiosk 模式示例

Android Shell 命令 DPM

但我在 adb shell 中收到以下错误:

这是我的清单:

过去是否有人遇到过这个错误,可以给我一个提示,我需要在哪里寻找错误。也许我的方法也不正确,我可以以更简单的方式获得 CPU 测量值。