源碼片段
public
class
MainActivity
extends
Activity {
private
DevicePolicyManager policyManager;
private
ComponentName componentName;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
componentName =
new
ComponentName(
this
, LockReceiver.
class
);
if
(policyManager.isAdminActive(componentName)) {
//判斷是否有權限(激活了設備管理器)
policyManager.lockNow();
// 直接鎖屏
finish();
}
else
{
activeManager();
//激活設備管理器獲取權限
finish();
}
}
private
void
activeManager() {
//使用隱式意圖調用系統方法來激活指定的設備管理器
Intent intent =
new
Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"一鍵鎖屏"
);
startActivity(intent);
}
}