2

我试图锁定设备并尝试使用以下代码启用它,但它不起作用。我还获得了以下两个许可并且没有显示该手机已锁定......我也尝试再次解锁它。

public class LockPhoneActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */

    Button lock, unlock;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        lock = (Button) findViewById(R.id.button1);
        unlock = (Button) findViewById(R.id.button2);

        lock.setOnClickListener(this);
        unlock.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        switch (v.getId()) {

        case R.id.button1:

            KeyguardManager mgr = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
            KeyguardLock lock = mgr.newKeyguardLock(KEYGUARD_SERVICE);
            lock.reenableKeyguard();

            Toast.makeText(getApplicationContext(), "Locked", Toast.LENGTH_LONG)
                    .show();

            break;

        case R.id.button2:

            KeyguardManager mgr1 = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
            KeyguardLock lock1 = mgr1.newKeyguardLock(KEYGUARD_SERVICE);

            lock1.disableKeyguard();

            break;
        }
    }
}

我还获得了以下许可...

<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
4

3 回答 3

3

你也可以通过设备管理员来完成

DevicePolicyManager mDPM;
mDPM.lockNow();
于 2012-07-02T10:14:27.613 回答
3

如果您想通过编程方式锁定 Android 手机屏幕,请查看以下教程。

以编程方式锁定 Android 手机屏幕

我编写了简单的应用程序来实现这一点。

如果您对我的解决方案有任何问题,请让我发表评论

于 2012-07-02T10:47:28.360 回答
1

试试这个:

mKeyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
mLock = mKeyGuardManager.newKeyguardLock("alarmRecieve");
((KeyguardLock) mLock).reenableKeyguard();
于 2012-07-02T10:06:21.440 回答