如何以编程方式在Android中设置和取消锁定屏幕密码

时间:2015-01-09 07:52:46

标签: android device-admin screen-lock

我想以编程方式设置锁屏密码,然后在执行循环时删除。我已经成功添加了设备管理,有人可以帮助我从我的应用程序本身设置和取消锁定屏幕密码。以下是我的设备管理工作代码

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);
    }
}

2 个答案:

答案 0 :(得分:5)

对于设置密码,您可以使用以下代码:

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

答案 1 :(得分:0)

试试这个例子:

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();
}

}