前言

Android有些功能需要user unlocked之后才能使用,因此在启动前需要判断一下当前Android设备是否unlocked。

这简单记录一下,方便自己查阅。

正文

判断isUserUnlocked

启动某些功能时通过下面方式判断一下是否已经可以启动了。

  1. public boolean isUserUnlocked() {
  2. UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
  3. return userManager != null && userManager.isUserUnlocked();
  4. }
复制

监听UserUnlocked状态

存在此时还存于locked,也就是上面isUserUnlocked()返回false时了,需要监听系统Intent.ACTION_USER_UNLOCKED等准备好再次启动对应的功能。

  1. IntentFilter intentFilter = new IntentFilter(Intent.ACTION_USER_UNLOCKED);
  2. registerReceiver(mUnLockReceiver, intentFilter);
复制

注意,广播注册需要在isUserUnlocked()判断之前,要不然存在时序问题。先监听广播,然后在判断是否unlocked。

  1. private final BroadcastReceiver mUnLockReceiver = new BroadcastReceiver() {
  2. @Override
  3. public void onReceive(Context context, Intent intent) {
  4. if(null== intent || null==intent.getAction()){
  5. return;
  6. }
  7. //这里处理需要的
  8. }
  9. };
复制

当然最后记得注销广播咯,这里不附上。

参考文章

推荐访问 读书导航 简单的可以自定义的导航主页。

相关文章

暂无评论

none
暂无评论...