如何在 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 shell
和 su
之后),但仍然出现相同的错误。
我也尝试在/system/data
中手动创建device_owner.xml
、device_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:在 Raspberry PI 3 上通过 USB UART 接收数据时出现 NullPointerException