如果您从未拥有过Huawei或Honor设备,那么您可能正在看标题并说“呵呵”。毕竟,Smart Lock是Android 5.0 Lollipop中引入的一项功能,可让您在某些条件下(例如位置,连接到某些设备,放在口袋里或识别声音时)更轻松地快速访问设备。

考虑到Lollipop发行已经过去了两年多,而且所有Android设备中约有65%都在Android 5.0+上运行,因此通常不值得讨论此功能。我们怀疑论坛上至少运行Lollipop的用户比例要高得多,尽管我们没有确切的统计数据。无论如何,Google的Smart Lock功能在Android设备中已变得司空见惯,以至于提供此功能的第三方应用程序已被广泛抛弃,因为他们看不到与该功能竞争的意义。
但是,只有一组用户拥有绝版的Smart Lock:拥有运行EMUI的Huawei或Honor设备的用户 。无论出于何种原因,EMUI都无法提供大多数其他Android 5.0+设备所提供的Smart Lock功能。相反,EMUI仅允许您在连接到某些蓝牙设备时自动解锁设备。
如果您拥有蓝牙可穿戴设备(例如智能手表或健身手环)肯定会有用,但并非每个人都始终将可穿戴设备连接到智能手机。华为明确排除了Google的Smart Lock功能,因为即使您将Smart Lock启用为Android中的“受信任的代理”,您也无法实际使用该功能。
基本上,您会被华为的“ Smart” Lock功能所困扰,该功能比Google的Smart Lock提供的功能要少。作为华为/荣誉设备拥有者,您唯一的选择是尝试在Play商店中尝试声称拥有此功能的众多选项之一(我的设备上从未使用过),或者将您的手机扎根并下载Xposed模块。EMUI缺乏合适的选择当然使我不得不编写本教程。借助一点Tasker魔术和一个名为AutoTools的插件,我们可以 根据位置自动解锁任何Huawei或Honor设备,而无需root用户。
适用于华为/荣誉设备的智能锁
只需两个应用程序即可启动和运行此功能。第一个是Tasker,这是XDA经常使用的,广受欢迎的Android自动化工具,可以解决从最平凡到极其复杂的问题。以2.99美元的价格,看似没有必要以如此简单的价格购买此应用程序,但是如果您愿意阅读一些教程,则该应用程序可以提供的价值是巨大的。接下来,您将需要Tasker插件的Beta版,即AutoTools。该插件为Tasker的本机工具包增加了许多有用的功能,尤其是我们将需要一种称为“安全设置”的AutoTools功能来实现我们的目标。
我们要做的是在设备上修改一个属性,该属性控制Android用来确定手机超时后何时显示锁定屏幕的计时器。这里的“超时”是指手机在闲置X分钟后关闭屏幕或用户通过按电源按钮手动关闭显示屏时。经过一段设定的时间(从设备进入睡眠后到进入睡眠模式后的30分钟),Android将显示锁定屏幕。
这两个功能的问题在于,默认情况下,增加“自动锁定”计时器可能会带来安全问题,因为如果在尚未激活锁定屏幕的时间范围内滑动设备,则小偷将拥有访问设备的全部内容。为了缓解这种情况,Android提供了“电源按钮立即锁定设备”选项,因此您可以通过按电源按钮立即激活锁定屏幕。但是,尤其是如果您设置了较短的屏幕超时时间,很容易忘记这样做,因此,如果您不小心使设备超时在表或桌面上进入超时状态,那么您仍然愿意受到恶意第三方的访问。无需手动按下电源按钮即可放到口袋里。
因此,我们对这个问题的解决方案是将更长的“自动锁定”计时器与电源按钮绑定,而无需手动操作,而是将其绑定到位置/ WiFi。这样,您可以在自己的家中舒适地使用不带锁屏的设备,但是请确保在出门时始终可以看到锁屏的密码。既然我们已经解释了我们在做什么,那么这实际上是如何做的。
讲解
如前所述,我们将修改某个系统属性。此属性是在Settings.Secure类下定义的 ,名称为 lock_screen_lock_after_timeout,并且它接受以毫秒为单位的整数值。为了修改此值,我们将需要授予AutoTools特定的权限,以便它可以写入这些设置而无需root访问。
第1步–向AutoTools授予安全设置权限
在Android的权限管理系统下,应用程序在清单文件中定义要授予的权限。然后,用户可以在安装(棉花糖之前)或按需(棉花糖+)上授予或拒绝权限。但是,存在某些权限,即使它们在清单中请求了应用程序也无法授予它们,例如WRITE_SECURE_SETTINGS。这是因为向任何应用程序授予如此强大的权限将使该应用程序对您的设备拥有大量控制权。
但是,有一种解决方法可用于将WRITE_SECURE_SETTINGS权限授予所需的任何应用程序。通过使用ADB的包管理器(pm)工具,我们几乎可以向所需的任何应用程序授予任何权限(前提是该应用程序在Manifest文件中请求该权限)。
您需要做的第一件事是将ADB二进制文件安装 到计算机上,然后再安装适合您设备的驱动程序。然后,在“开发人员选项”中启用“ USB调试”(转到“设置”->“关于电话”,如果没有,请点按“内部版本号7次”),然后将电话连接到计算机。最后,在打开终端后发送以下命令:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
现在,AutoTools可以更改设备上的任何“全局”,“安全”或“系统”设置。您可以通过多种方式来使用这些设置,并且每个类别中可用设置的列表完全取决于您的设备和软件版本,但这是另一次讨论了。无论如何,我们将继续向您展示如何使用自动工具来控制锁定屏幕超时。
步骤2 –设定Tasker
打开Tasker,然后按右下角的 +图标创建一个新的配置文件。确实为您的新个人资料命名,例如“自动锁定”或您想要的任何名称。对于我们将使用的上下文类型,选择 State。转到 网络-> WiFi已连接。在这里,我们将选择要列入白名单的WiFi网络以自动解锁设备。点击放大镜图标,然后选择要列入白名单的所有WiFi网络。
可选:如果要创建基于真实位置的Smart Lock(而不仅仅是基于WiFi网络),则可以在Tasker中使用“位置”上下文,而不要使用“状态”->“网络”->“ WiFi连接”功能。请注意,塔斯克(Tasker)不会创建地理围栏,因此使用此方法会浪费电池。如果要让Tasker对电池效率更高的地理围栏做出反应,则需要安装AutoLocation插件。
退出,然后将要求您创建一个任务。输入任何名称(或没有名字就可以)以进入“任务创建”屏幕。按中间底部的 +图标以添加新的动作。转到 插件–> AutoTools –>安全设置。点击 铅笔图标以打开“ AutoTools安全设置”配置屏幕。进入 锁定屏幕 -> 自动锁定,然后输入足够高的值,例如' 9001'。这是AutoTools将自动锁定屏幕计时器设置为的值(以秒为单位)。对我们来说幸运的是,我们不必手动设置修改lock_screen_lock_after_timeout值的命令,因为AutoTools的开发人员已经在漂亮的GUI中为我们实现了此功能。

