如何在 Android Things 上设置设备所有者?

Posted

技术标签:

【中文标题】如何在 Android Things 上设置设备所有者?【英文标题】:How to set device owner on Android Things? 【发布时间】:2021-11-21 11:11:30 【问题描述】:

我想在运行 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 shellsu 之后),但仍然出现相同的错误。

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

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

【问题讨论】:

AndroidManifest.xml 是否导出receiver?实际上,他们将在 2022 年 1 月 5 日关闭 Things 控制台...developer.android.com/things/faq @MartinZeitler 是的,这实际上适用于标准 Android 系统,但不适用于 Android Things。我知道 Android Things 即将关闭,但我仍然需要让它工作...... 【参考方案1】:

Android Things 现已弃用,您可以使用智能手机操作系统或 Android。那是基于这个quote:

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

android中的所有者可以在本文档中设置explanation,示例代码:

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()

【讨论】:

感谢您的建议。但我的问题明确针对 Android Things(即使它已被弃用)。 @sdabet,我想你可以找到替代的 android things repo 贡献

以上是关于如何在 Android Things 上设置设备所有者?的主要内容,如果未能解决你的问题,请参考以下文章

将Android Things与阿里云集成,轻松实现物联网项目

如何在 Android Things 上安装 USB 驱动器?

Google I/O 大会上的 Android Things 亮点汇总

正式发布Android Things 1.0

Android Things:在 Raspberry PI 3 上通过 USB UART 接收数据时出现 NullPointerException

Android Things:支持NDK吗? [关闭]