簡體   English   中英

如何在Android模擬器上獲取鎖定解鎖屏幕?

[英]How can i get lock unlock screen on emulator in android?

最近,我正在模擬器鎖定和解鎖屏幕中執行一個項目。 我放了一個按鈕。 如果要按下該按鈕,我想鎖定手機。

我的問題是當我按下按鈕時沒有任何反應。 請給我任何想法。

我如何獲得鎖定解鎖執行使用此代碼。

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

//嘗試一次,並檢查logcat正在打印啟用行

public void onClick(View v) {

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

    break;  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM