BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #28047同步于 2015/12/29
MobileTerminalAT机器人发帖

[问题] 开启设备管理器权限时Can not start ADD_DEVICE_ADMIN a

peep
2015/12/29镜像同步0 回复
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上来,希望版里的大神可以指点一下!多谢!
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。