3

我想在运行 Android Things 的设备上将我的 Android 应用设置为设备所有者。

(我知道 Android Things 正在关闭,但我仍然需要让它工作)

我尝试了通常的命令:adb shell dpm set-device-owner <package>/<component>

此命令在标准 Android 设备上运行良好,但在 Android Things 上我得到以下响应:

java.lang.RuntimeException: Can't set package ComponentInfo{<package>/<component>} as device owner.
at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:149)
at com.android.commands.dpm.Dpm.onRun(Dpm.java:96)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:54)
at com.android.commands.dpm.Dpm.main(Dpm.java:41)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:285)

我尝试以 root 身份运行命令(在adb shell&之后su),但仍然得到相同的错误。

我还尝试手动创建device_owner.xml, device_policies.xml,... 中的文件/system/data,如与 AOSP 相关的主题中所述,但它没有效果。

是否可以在 Android Things 设备上设置设备所有者?

4

1 回答 1

0

Android Things 现已弃用,您可以使用智能手机操作系统或 Android。这是基于此报价

Android Things 是 Google 现已弃用的基于 Android 的嵌入式操作系统平台,在 2015 年 Google I/O 上宣布,并于 2018 年推出。2019 年,Android Things 放弃了对低功耗硬件的支持,并重新专注于智能手机级设备。

本文档说明中可以使用android中的owner设置,示例代码:

val provisioningActivity = getActivity()

// You'll need the package name for the DPC app.
val myDPCPackageName = "com.example.myDPCApp"

// Set up the provisioning intent
val provisioningIntent = Intent("android.app.action.PROVISION_MANAGED_PROFILE")
provisioningIntent.putExtra(myDPCPackageName,
        provisioningActivity.applicationContext.packageName)
if (provisioningIntent.resolveActivity(provisioningActivity.packageManager) == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE)
    provisioningActivity.finish()
}
于 2021-10-17T20:42:42.900 回答