gpt4 book ai didi

android - 从服务运行 Intent DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:23 26 4
gpt4 key购买 nike

我有一项服务,我希望提升该服务以将其启用为设备管理员, 直到现在,我从服务中启动了这种 UI 交互,例如

    Intent intent2 = new Intent();
intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent2.setAction(android.content.Intent.ACTION_VIEW);
intent2.setDataAndType(uri, "application/vnd.android.package-archive");
context.startActivity(intent2);

它可以工作,但是使用 DevicePolicyManager 我找不到方法:

        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "some text.");
context.startActivity(intent);

不起作用:不提升任何内容但也不崩溃。没有 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 它只是崩溃,因为此代码位于服务内的线程内。想法?

最佳答案

原因在Android DeviceAdminAdd类本身的代码上:

if ((getIntent().getFlags()&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
Log.w(TAG, "Cannot start ADD_DEVICE_ADMIN as a new task");
finish();
return;
}

您应该考虑使用另一个 Activity 来调用 DevicePolicyManager。

关于android - 从服务运行 Intent DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686033/

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