2 回答
TA贡献1816条经验 获得超6个赞
我正在尝试以编程方式将我的设备设置为所有者
将应用程序设置为设备所有者的合法方式只有两种。
a) 设备供应
将设备拆箱后,您可以使用专门准备的 NFC 标签轻触它。由存储在 NFC 标签上的指令指定的应用程序现在被设置为设备所有者。
b) 亚行
只要满足这些条件,就可以使用问题中提到的命令:
没有设置设备所有者
设备上没有注册帐户
该dpm set-device-owner
命令只能从用户打开的 shell(即来自开发机器的 ADB)运行。它不适用于由Runtime.exec()
. 而且,很明显,即使您可以从设备到自身进行 ADB,它也会受到相同的限制。
来源:
最终,我希望将设备设置为所有者(没有 NFC),其唯一目的是在不征得用户许可的情况下固定屏幕
您可以使用隐藏的系统 API ( android.app.StatusBarManager
) 自己隐藏状态栏和导航按钮,并让您的应用程序使用设备制造商的平台签名进行签名。您需要签名才能获得android.permission.STATUS_BAR
许可。
TA贡献1784条经验 获得超9个赞
简短的回答是:您的应用程序无法运行 ADB 命令。允许这样做对Android来说将是一个巨大的安全漏洞。
如果要以编程方式将设备设置为设备管理员,请查看文档中的示例
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, getString(R.string.add_admin_extra_app_text));
startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);
添加回答
举报