Advertisement
Guest User

tpandro

a guest
Feb 26th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1.  
  2. import android.app.Activity;
  3. import android.app.admin.DeviceAdminReceiver;
  4. import android.app.admin.DevicePolicyManager;
  5. import android.content.ComponentName;
  6. import android.content.Context;
  7. import android.content.Intent;
  8. import android.os.Bundle;
  9. import android.util.Log;
  10. import android.widget.CheckBox;
  11. import android.widget.CompoundButton;
  12. import android.widget.Toast;
  13.  
  14. public class DevicePolicyAdmin extends Activity {
  15.  
  16. DevicePolicyManager mDPM; //DEVICE POLICY MANAGER
  17. ComponentName mDPA; //DEVICE POLICY ADMINISTRATOR
  18. private CheckBox adminEnabledCheckbox;
  19.  
  20. protected void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.activity_device_policy_admin);
  23. mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
  24. mDPA = new ComponentName(this, MyDevicePolicyReceiver.class);
  25. adminEnabledCheckbox = (CheckBox) findViewById(R.id.checkBox);
  26. }
  27.  
  28. protected void onResume() {
  29. super.onResume();
  30. if (isMyDevicePolicyReceiverActive())
  31. adminEnabledCheckbox.setChecked(true);
  32. else
  33. adminEnabledCheckbox.setChecked(false);
  34. adminEnabledCheckbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  35. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
  36. if(isChecked){
  37. Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
  38. intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDPA);
  39. intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Politique de sécurité");
  40. startActivityForResult(intent, 1);
  41. }else
  42. mDPM.removeActiveAdmin(mDPA);
  43. } });
  44. }
  45.  
  46. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  47. super.onActivityResult(requestCode, resultCode, data);
  48. if (resultCode == RESULT_OK)
  49. if(requestCode==1){
  50. mDPM.setMaximumTimeToLock(mDPA, 120000);
  51. mDPM.setMaximumFailedPasswordsForWipe(mDPA, 5);
  52. mDPM.setStorageEncryption(mDPA, true);
  53. mDPM.setPasswordHistoryLength(mDPA, 5);
  54. mDPM.setPasswordMinimumLength(mDPA, 8);
  55. mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
  56. mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
  57. mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX);
  58. mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC);
  59. mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC);
  60. mDPM.setPasswordQuality(mDPA, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX);
  61. if(!mDPM.isActivePasswordSufficient()){
  62. Intent setPasswordIntent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
  63. startActivityForResult(setPasswordIntent, 2);
  64. }
  65. }
  66. if(resultCode == RESULT_CANCELED)
  67. if(requestCode==2)
  68. startActivityForResult(new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD), 2);
  69. }
  70.  
  71. private boolean isMyDevicePolicyReceiverActive() {
  72. return mDPM.isAdminActive(mDPA);
  73. }
  74.  
  75. public static class MyDevicePolicyReceiver extends DeviceAdminReceiver {
  76.  
  77. public void onDisabled(Context context, Intent intent) {
  78. Toast.makeText(context, "Device Admin Disabled", Toast.LENGTH_SHORT).show();
  79. }
  80.  
  81. public void onEnabled(Context context, Intent intent) {
  82. Toast.makeText(context, "Device Admin is now enabled", Toast.LENGTH_SHORT).show();
  83. }
  84.  
  85. public CharSequence onDisableRequested(Context context, Intent intent) {
  86. CharSequence disableRequestedSeq = "Requesting to disable Device Admin";
  87. return disableRequestedSeq;
  88. }
  89.  
  90. public void onPasswordChanged(Context context, Intent intent) {
  91. Toast.makeText(context, "Device password is now changed", Toast.LENGTH_SHORT).show();
  92. DevicePolicyManager localDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
  93. ComponentName localComponent = new ComponentName(context, MyDevicePolicyReceiver.class);
  94. localDPM.setPasswordExpirationTimeout(localComponent, 30000);
  95. }
  96.  
  97. public void onPasswordExpiring(Context context, Intent intent) {
  98. Toast.makeText(context, "Device password is going to expire, please change to a new password", Toast.LENGTH_LONG).show();
  99.  
  100. DevicePolicyManager localDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
  101. ComponentName localComponent = new ComponentName(context, MyDevicePolicyReceiver.class);
  102. long expr = localDPM.getPasswordExpiration(localComponent);
  103. long delta = expr - System.currentTimeMillis();
  104. boolean expired = delta < 0L;
  105. if(expired){
  106. localDPM.setPasswordExpirationTimeout(localComponent, 30000);
  107. Intent passwordChangeIntent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
  108. passwordChangeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  109. context.startActivity(passwordChangeIntent);
  110. }
  111. }
  112.  
  113. public void onPasswordFailed(Context context, Intent intent) {
  114. Log.d("TP", "PASS FAILED");
  115. Toast.makeText(context, "Password failed", Toast.LENGTH_SHORT).show();
  116. }
  117.  
  118. public void onPasswordSucceeded(Context context, Intent intent) {
  119. Toast.makeText(context, "Access Granted", Toast.LENGTH_SHORT).show();
  120. }
  121.  
  122. public void onReceive(Context context, Intent intent) {
  123. super.onReceive(context, intent);
  124. }
  125. }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement