gpt4 book ai didi

java - 使应用程序成为设备管理员

转载 作者:行者123 更新时间:2023-12-02 12:31:22 25 4
gpt4 key购买 nike

我正在使用以下代码将应用程序设置为设备管理员

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdminComponentName); // Here setting my receiver as device admin
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "You must enable device administration for certain features"
+ " of the app to function.");
startActivityForResult(intent, 50);

允许应用程序成为设备管理员后,我正在执行以下代码

devicePolicyManager.setSecureSetting(deviceAdminComponentName, Settings.Secure.INSTALL_NON_MARKET_APPS, "1");

这里它抛出了我的错误管理组件信息 {...} 未设置为配置文件所有者..

我用谷歌搜索发现DeviceAdminReceiver可以通过使用以下adb命令设置为管理员

dpm set-device-owner com.yego.driverkiosk/.DeviceAdminMaker 它可以工作。但我希望仅通过代码来完成。

DeviceAdminReceiver

public class DeviceAdminMaker extends DeviceAdminReceiver {
@Override
public void onEnabled(Context context, Intent intent) {
// showToast(context, context.getString(R.string.admin_receiver_status_enabled));
}

@Override
public void onDisabled(Context context, Intent intent) {
//showToast(context, context.getString(R.string.admin_receiver_status_disabled));
}

@Override
public void onPasswordChanged(Context context, Intent intent) {
// showToast(context, context.getString(R.string.admin_receiver_status_pw_changed));
}

@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
}
}

我该怎么做?

最佳答案

您不能仅通过代码来做到这一点。这些都是非常安全的设置。基本上,您要求比设备用户更高的权限 - super 用户权限。如果任何恶意软件都可以使用它,则永远不会允许它通过其他 channel 。这些代码只能用于您实际控制的设备,例如信息亭或公司拥有的设备。

(此外,如果您通过 dpm 将自己设置为设备策略所有者,则没有理由同时让自己成为管理员,所有者是更高级别的管理员)。

关于java - 使应用程序成为设备管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45273739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com