【问题标题】:How can i get lock unlock screen on emulator in android?如何在android的模拟器上获得锁定解锁屏幕?
【发布时间】:2012-03-17 09:33:21
【问题描述】:

最近我正在做一个模拟器锁定和解锁屏幕的项目。我放了一个按钮。我想这样做,如果我按下那个按钮我想锁定手机。

我的问题是当我按下按钮时没有任何反应。 请给我任何想法。

我如何使用此代码执行锁定解锁。

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

【问题讨论】:

    标签: android android-layout android-intent android-emulator android-widget


    【解决方案1】:

    //尝试一次 并检查 logcat 是否打印行启用

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

    【讨论】:

    • :: 我这样做了,它看到点击启用但它不执行锁定我想锁定和解锁......如果你有任何解决方案,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多