我已经完成了设置设备管理员所需的工作。但是当我运行“dpm set-device-owner”时总是会得到未知的管理员:组件信息。我想执行下面的代码。每当我在代码
下面运行时我都会遇到安全异常 DevicePolicyManager deviceManager = ((DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE));
deviceManager.installCaCert(localComponent, ret);
答案 0 :(得分:0)
从您的问题中,我看到您指的是两种不同的东西:设备管理员和设备所有者。
这是什么意思?您从代码中询问,是否如本例所示那样做意图并等待响应? Is it a proper way to get the response from Device Admin by onActivityResult
您是否尝试过adb中的命令:dpm set-active-admin com.your.package / .your.device.admin.receiver吗?
这是具有更高权限的设备管理员的顶部。您无需成为设备所有者即可安装证书,可以通过以下方法要求用户批准证书:Programmatically add a certificate authority while keeping Android system SSL certificates或使用供应商(如Samsung Knox或LG)的api来完成。
通过执行dpm set-active-owner com.your.package / .your.device.admin.receiver,您可以始终(如果设备允许,仅用于测试)将您的应用启用为设备所有者
https://developers.google.com/android/work/prov-devices-有关如何在没有ADB(最终用户设备)的情况下向具有设备所有者的设备进行配置的文档
class ActivityB extends AppCompatActivity {
public static final int resultSuccess = 0x11
public static final int resultFailure = 0x33
public static final String resultKey = "keyForResult"
private void onListItemClick(final String soundString) {
// optional you can also do this
SharedPrefUtils.saveString(ActivityA.keyPref, soundString);
// better to do this
final Intent returnIntent = getIntent() != null ? getIntent() : new Intent();
returnIntent.putExtra(resultKey, soundString);
if (getCallingActivity() != null) {
setResult(returnIntent, resultSuccess);
}
onBackPressed();
}
}