返回信息流RT,最近想做一个远程开启设备管理员权限,然后进行锁屏或是清除数据的功能,可能用于手机丢失这种场景下。希望实现的是,当事先设定的安全号码向该丢失手机发送短信时,开启该手机的设备管理器权限,并进行锁屏和设置屏幕密码。
这个功能单独放在mianActivity中是可以实现的,但是后来放在了SmsReceiver中,就出现了Can not start ADD_DEVICE_ADMIN as a new task的问题。
部分源码如下:
else if("#*lockscreen*#".equals(body)){
//远程锁屏
Log.i(TAG, "远程锁屏");
abortBroadcast();
ComponentName mDeviceAdminSample = new ComponentName(context, MyAdmin.class);
dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
//如果当前未开启权限时
if(!dpm.isAdminActive(mDeviceAdminSample)){
Toast.makeText(context, "未设置管理员权限", 0).show();
Intent intent1 = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
//需要开启的组件为MyAdmin 所以需要首先进行声明操作
intent1.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
//提示信息
intent1.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"开启设备管理员权限可以进行一键锁屏");
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
//2.进行锁屏操作
else{
dpm.lockNow();
//设置屏幕密码
dpm.resetPassword("123", 0);
//清楚SD卡上的数据
//dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
//dpm.wipeData(0);//恢复出厂设置
}
}
运行结果是一直会弹出未设置权限的消息,同时有Can not start ADD_DEVICE_ADMIN as a new task的log信息出现。
网上相关资料不太多,我把类似一个问题也po上来,希望版里的大神可以指点一下!多谢!
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #28047同步于 2015/12/29
MobileTerminalAT机器人发帖
[问题] 开启设备管理器权限时Can not start ADD_DEVICE_ADMIN a
peep
2015/12/29镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。