user45678
user45678

Reputation: 1514

How to SET and UNSET lock screen password in Android programatically

I want to set lock screen password programatically and then remove when the loop is executed. I have added Device Administration successfully, can someone help me to SET and UNSET lock screen password from my application itself. Below is my working code for Device Administration

public class DevicePolicyDemoActivity extends Activity {
    static final String TAG = "DevicePolicyDemoActivity";
    static final int ACTIVATION_REQUEST = 47; // identifies our request id
    DevicePolicyManager devicePolicyManager;
    ComponentName demoDeviceAdmin;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Initialize Device Policy Manager service and our receiver class
        devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        demoDeviceAdmin = new ComponentName(this, DemoDeviceAdminReceiver.class);
        Intent intent = new Intent(
                DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                demoDeviceAdmin);
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                "Your boss told you to do this");
        startActivityForResult(intent, ACTIVATION_REQUEST);
    }
}

Upvotes: 4

Views: 3799

Answers (2)

Elton da Costa
Elton da Costa

Reputation: 1277

try this example:

public class Main extends Activity implements TextToSpeech.OnInitListener
{
private TextToSpeech mTts;
// This code can be any value you want, its just a checksum.
private static final int MY_DATA_CHECK_CODE = 1234;

/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Fire off an intent to check if a TTS engine is installed
    Intent checkIntent = new Intent();
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

}

/**
 * Executed when a new TTS is instantiated. Some static text is spoken via TTS here.
 * @param i
 */
public void onInit(int i)
{
    mTts.speak("Hello folks, welcome to my little demo on Text To Speech.",
            TextToSpeech.QUEUE_FLUSH,  // Drop all pending entries in the playback queue.
            null);
}


/**
 * This is the callback from the TTS engine check, if a TTS is installed we
 * create a new TTS instance (which in turn calls onInit), if not then we will
 * create an intent to go off and install a TTS engine
 * @param requestCode int Request code returned from the check for TTS engine.
 * @param resultCode int Result code returned from the check for TTS engine.
 * @param data Intent Intent returned from the TTS check.
 */
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if (requestCode == MY_DATA_CHECK_CODE)
    {
        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)
        {
            // success, create the TTS instance
            mTts = new TextToSpeech(this, this);
        }
        else
        {
            // missing data, install it
            Intent installIntent = new Intent();
            installIntent.setAction(
                    TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(installIntent);
        }
    }
}

/**
 * Be kind, once you've finished with the TTS engine, shut it down so other
 * applications can use it without us interfering with it :)
 */
@Override
public void onDestroy()
{
    // Don't forget to shutdown!
    if (mTts != null)
    {
        mTts.stop();
        mTts.shutdown();
    }
    super.onDestroy();
}

}

Upvotes: 0

Arslan Sohail
Arslan Sohail

Reputation: 1713

For Setting Password you can use the code below:

devicePolicyManager.setPasswordQuality(
                                   demoDeviceAdmin
                                  ,DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
devicePolicyManager.setPasswordMinimumLength(
                                  demoDeviceAdmin,
                                   5);
boolean result = devicePolicyManager.resetPassword("123456",
                        DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);

Upvotes: 7

Related Questions