Android 检测设备是否锁定
我几天前发现了这段代码,但它不起作用。谁能解释一下为什么?我想检测用户是否锁定了设备。它必须打印第2点、第1点和第2点(如果手机被解锁,然后再次锁定和解锁),但它只打印第2点,仅此而已。没别的了。 我的活动:Android 检测设备是否锁定,android,Android,我几天前发现了这段代码,但它不起作用。谁能解释一下为什么?我想检测用户是否锁定了设备。它必须打印第2点、第1点和第2点(如果手机被解锁,然后再次锁定和解锁),但它只打印第2点,仅此而已。没别的了。 我的活动: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save
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));
}
});
}
}
我的服务:
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();
@Striper可能重复这不是重复,因为我问的是为什么这段代码不起作用,而不是怎么做。因为你的代码只在创建服务时运行一段时间。使用计时器在一定时间后检查设备的状态interval@naveed-阿里:你说“因为你的代码在创建服务时只运行一个”是什么意思? 我想让我的应用程序检测设备何时被锁定,以及何时不仅仅是在我按下按钮之后。你能解释一下你的代码和我的代码有什么区别吗?谢谢