【问题标题】:How to set device owner on Android Things?如何在 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 即将关闭,但我仍然需要让它工作......

标签: android android-things device-policy-manager device-owner android-device-owner


【解决方案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 贡献
猜你喜欢
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多