2

デバイスをロックしようとしていて、次のコードを使用して有効にしようとしましたが、機能していません。また、次の 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

Android Phone Screen Programmaticllayをロックする場合は、以下のチュートリアルを確認してください。

プログラムでAndroid携帯画面をロックする

私はこれを達成するための簡単なアプリケーションを書きました。

私の解決策で問題が発生した場合はコメントさせてください

于 2012-07-02T10:47:28.360 に答える
3

デバイス管理者経由で行うこともできます

DevicePolicyManager mDPM;
mDPM.lockNow();
于 2012-07-02T10:14:27.613 に答える
1

これを試して:

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