0

最近我在模拟器锁定和解锁屏幕上做了一个项目。我放了一个按钮。我想这样做,如果我按下那个按钮,我想锁定手机。我怎样才能锁定在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(); 
    } 
} 

回答

0

//尝试这一次 和检查的logcat正在打印线使

public void onClick(View v) { 

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

    break; 
} 
+0

::我做到这一点,它看到点击启用,但它不是执行锁定我想锁定和解锁。 ..如果您有任何解决方案,请让我。 – Naman 2012-03-17 10:03:51