前言

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

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

正文

判断isUserUnlocked

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

public boolean isUserUnlocked() {
    UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
    return userManager != null && userManager.isUserUnlocked();
}

监听UserUnlocked状态

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

IntentFilter intentFilter = new IntentFilter(Intent.ACTION_USER_UNLOCKED);
registerReceiver(mUnLockReceiver, intentFilter);

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

private final BroadcastReceiver mUnLockReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(null== intent || null==intent.getAction()){
            return;
        }
        //这里处理需要的
    }
};

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

参考文章

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

相关文章

暂无评论

none
暂无评论...