package
secondriver.sdk.activity;
import
android.app.Activity;
import
android.app.admin.DeviceAdminReceiver;
import
android.app.admin.DevicePolicyManager;
import
android.content.ComponentName;
import
android.content.Context;
import
android.content.Intent;
import
android.os.Bundle;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.Toast;
import
butterknife.Bind;
import
butterknife.ButterKnife;
import
butterknife.OnClick;
import
secondriver.sdk.R;
/**
* Author : secondriver
* Created : 2015/11/27
*/
public
class
DeviceAdminActivity
extends
Activity {
@Bind
(R.id.pwd_editText)
public
EditText pwdEditText;
private
DevicePolicyManager mDevicePolicyManager;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_device_admin);
ButterKnife.bind(
this
);
mDevicePolicyManager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
}
@OnClick
(R.id.device_admin_button)
public
void
onClickDeviceButton(Button button) {
Intent intent =
new
Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
new
ComponentName(
this
, MyDeviceAdminReceiver.
class
));
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"启动设备管理器"
);
startActivityForResult(intent,
1
);
}
@OnClick
(R.id.pwd_rule_set_button)
public
void
onClickPwdRuleSetButton(Button button) {
Intent intent =
new
Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
startActivityForResult(intent,
2
);
}
@OnClick
(R.id.modify_pwd_button)
public
void
onClickModifyPwdButton(Button button) {
String pwd = pwdEditText.getText().toString();
ComponentName receiver =
new
ComponentName(
this
, MyDeviceAdminReceiver.
class
);
boolean
active = mDevicePolicyManager.isAdminActive(receiver);
if
(active) {
boolean
rs = mDevicePolicyManager.resetPassword(pwd, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
if
(rs) {
Toast.makeText(
this
,
"密码修改成功"
, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(
this
,
"密码修改失败"
, Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(
this
,
"没有Active Admin"
, Toast.LENGTH_SHORT).show();
}
}
@Override
protected
void
onActivityResult(
int
requestCode,
int
resultCode, Intent data) {
switch
(requestCode) {
case
1
:
if
(resultCode == RESULT_OK) {
Toast.makeText(
this
,
"设备管理器开启成功"
, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(
this
,
"设备管理器开启失败"
, Toast.LENGTH_SHORT).show();
}
break
;
case
2
:
if
(resultCode == RESULT_OK) {
Toast.makeText(
this
,
"密码规则设置成功"
, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(
this
,
"密码规则设置失败"
, Toast.LENGTH_SHORT).show();
}
break
;
default
:
break
;
}
}
public
static
class
MyDeviceAdminReceiver
extends
DeviceAdminReceiver {
/**
* 重写其中方法
* <p>
* More
*/
@Override
public
void
onDisabled(Context context, Intent intent) {
super
.onDisabled(context, intent);
}
@Override
public
void
onEnabled(Context context, Intent intent) {
super
.onEnabled(context, intent);
}
}
}