Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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.util.Log;
- import android.widget.CheckBox;
- import android.widget.CompoundButton;
- import android.widget.Toast;
- public class DevicePolicyAdmin extends Activity {
- DevicePolicyManager mDPM; //DEVICE POLICY MANAGER
- ComponentName mDPA; //DEVICE POLICY ADMINISTRATOR
- private CheckBox adminEnabledCheckbox;
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_device_policy_admin);
- mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
- mDPA = new ComponentName(this, MyDevicePolicyReceiver.class);
- adminEnabledCheckbox = (CheckBox) findViewById(R.id.checkBox);
- }
- protected void onResume() {
- super.onResume();
- if (isMyDevicePolicyReceiverActive())
- adminEnabledCheckbox.setChecked(true);
- else
- adminEnabledCheckbox.setChecked(false);
- adminEnabledCheckbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
- if(isChecked){
- Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
- intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDPA);
- intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Politique de sécurité");
- startActivityForResult(intent, 1);
- }else
- mDPM.removeActiveAdmin(mDPA);
- } });
- }
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (resultCode == RESULT_OK)
- if(requestCode==1){
- mDPM.setMaximumTimeToLock(mDPA, 120000);
- mDPM.setMaximumFailedPasswordsForWipe(mDPA, 5);
- mDPM.setStorageEncryption(mDPA, true);
- mDPM.setPasswordHistoryLength(mDPA, 5);
- mDPM.setPasswordMinimumLength(mDPA, 8);
- mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
- mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
- mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX);
- mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC);
- mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC);
- mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX);
- if(!mDPM.isActivePasswordSufficient()){
- Intent setPasswordIntent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
- startActivityForResult(setPasswordIntent, 2);
- }
- }
- if(resultCode == RESULT_CANCELED)
- if(requestCode==2)
- startActivityForResult(new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD), 2);
- }
- private boolean isMyDevicePolicyReceiverActive() {
- return mDPM.isAdminActive(mDPA);
- }
- public static class MyDevicePolicyReceiver extends DeviceAdminReceiver {
- public void onDisabled(Context context, Intent intent) {
- Toast.makeText(context, "Device Admin Disabled", Toast.LENGTH_SHORT).show();
- }
- public void onEnabled(Context context, Intent intent) {
- Toast.makeText(context, "Device Admin is now enabled", Toast.LENGTH_SHORT).show();
- }
- public CharSequence onDisableRequested(Context context, Intent intent) {
- CharSequence disableRequestedSeq = "Requesting to disable Device Admin";
- return disableRequestedSeq;
- }
- public void onPasswordChanged(Context context, Intent intent) {
- Toast.makeText(context, "Device password is now changed", Toast.LENGTH_SHORT).show();
- DevicePolicyManager localDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
- ComponentName localComponent = new ComponentName(context, MyDevicePolicyReceiver.class);
- localDPM.setPasswordExpirationTimeout(localComponent, 30000);
- }
- public void onPasswordExpiring(Context context, Intent intent) {
- Toast.makeText(context, "Device password is going to expire, please change to a new password", Toast.LENGTH_LONG).show();
- DevicePolicyManager localDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
- ComponentName localComponent = new ComponentName(context, MyDevicePolicyReceiver.class);
- long expr = localDPM.getPasswordExpiration(localComponent);
- long delta = expr - System.currentTimeMillis();
- boolean expired = delta < 0L;
- if(expired){
- localDPM.setPasswordExpirationTimeout(localComponent, 30000);
- Intent passwordChangeIntent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
- passwordChangeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(passwordChangeIntent);
- }
- }
- public void onPasswordFailed(Context context, Intent intent) {
- Log.d("TP", "PASS FAILED");
- Toast.makeText(context, "Password failed", Toast.LENGTH_SHORT).show();
- }
- public void onPasswordSucceeded(Context context, Intent intent) {
- Toast.makeText(context, "Access Granted", Toast.LENGTH_SHORT).show();
- }
- public void onReceive(Context context, Intent intent) {
- super.onReceive(context, intent);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement