首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使app成为设备管理

使app成为设备管理
EN

Stack Overflow用户
提问于 2017-07-24 06:13:38
回答 1查看 982关注 0票数 0

我使用下面的代码将app设置为设备管理

代码语言:javascript
复制
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);

在允许app成为device admin之后,我正在执行以下代码

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

在这里它抛给我错误Admin component info {...} not set to profile owner..

我在googled上搜索并发现,DeviceAdminReceiver可以通过使用adb命令进行管理

dpm set-device-owner com.yego.driverkiosk/.DeviceAdminMaker和它的工作。但我只想用代码来完成。

DeviceAdminReceiver

代码语言:javascript
复制
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);
}
}

我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2017-07-24 06:44:00

你不能只用代码来做。这些都是非常安全的设置。基本上,你是在要求比设备超级用户的用户更高的权限。如果是任何一件恶意软件可以使用它,它将永远不允许通过另一个渠道。这些代码只适用于您实际控制的设备,如报亭或公司拥有的设备。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45273739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档