检测设备是否锁定
问题描述:
前几天我发现了这段代码,但它不起作用。有人可以解释我为什么吗?我想检测用户是否锁定了设备。它必须打印第2点,第1点和第2点(如果手机已解锁,然后再次锁定和解锁),但它仅打印第2点,这就是全部。而已。 我的活动:检测设备是否锁定
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService(new Intent(MainActivity.this, MyService.class));
}
});
}
}
为MyService:
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
KeyguardManager kgMgr =
(KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean showing = kgMgr.inKeyguardRestrictedInputMode();
if (showing){
Log.i("Point ", "1");
}else{
Log.i("Point ", "2");
}
}
}
}
答
有这个很多答案。但结帐这一个;
KeyguardManager kM =
(KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean isLocked= kM.inKeyguardRestrictedInputMode();
+1
您能否介绍一下我的代码和我的代码有什么区别?谢谢。 –
[检测时屏幕被锁定(http://stackoverflow.com/questions/8317331/detecting-when-screen-is-locked) – Strider
@strider这不是一个重复,因为我的可能的复制问为什么这个代码不起作用,而不是如何做到这一点。 –
beacuase你的代码在创建服务时只运行一个 –