Как я могу получить блокировку разблокировки экрана на эмуляторе в Android? - PullRequest
0 голосов
/ 17 марта 2012

Недавно я делаю один проект в эмуляторе блокировки и разблокировки экрана.Я положил одну кнопку.Я хочу сделать это, если я нажму эту кнопку, я хочу заблокировать телефон.

Моя проблема в том, что когда я нажимаю кнопку, ничего не происходит.пожалуйста, дайте мне какое-нибудь представление об этом.

как я могу получить разблокировку блокировки, используя этот код.

     public class Test extends Activity implements OnClickListener{
/** Called when the activity is first created. */ 
Button btn1;
private KeyguardManager mKeyguardManager;
private KeyguardManager.KeyguardLock mKeyguardLock;
private static final String TAG = "ALERTLock";

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    btn1=(Button)findViewById(R.id.button1);
    btn1.setOnClickListener(this);

        int flags = getFlagsForVersion();        
        getWindow().addFlags(flags);
        mKeyguardManager = (KeyguardManager)     

            getSystemService(Context.KEYGUARD_SERVICE);   
}


public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v==btn1)
    {           
        disableKeyguard();

    }
        else    
         {
            enableKeyguard();
         }
}
private int getFlagsForVersion() {
        final String possibleFlags[] = new String[] {
            "FLAG_SHOW_WHEN_LOCKED",
            "FLAG_DISMISS_KEYGUARD",
            "FLAG_TURN_SCREEN_ON"
        };

        int flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
        for(String flag:possibleFlags) {
            try {
                Field field = WindowManager.LayoutParams.class.getField(flag);
                int value = field.getInt(null);
                flags |= value;
            }
            catch(NoSuchFieldException e) { }
            catch(IllegalAccessException e) { }
        }

        return flags;
    }

    private synchronized void enableKeyguard() {
        if (mKeyguardLock != null) {
            mKeyguardLock.reenableKeyguard();
            mKeyguardLock = null;
        }
    }

    private synchronized void disableKeyguard() {
        if (mKeyguardLock == null) {
            mKeyguardLock = mKeyguardManager.newKeyguardLock(TAG);
            mKeyguardLock.disableKeyguard();
        }
    }    
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        disableKeyguard();
    }

    @Override
    public void onResume() {
        super.onResume();
        disableKeyguard();
    }
}

1 Ответ

0 голосов
/ 17 марта 2012

// попробуйте это один раз и убедитесь, что logcat печатает строку enable

public void onClick(View v) {

switch(v.getId()){   
  case R.id.button1: 
    //do this
Log.d("clicked enable","-----");
enableKeyguard();

    break;  
}
...