OFFTIME for Android 断线时间 手机想都别想

如今很多App都是力争吸引人的目光,恨不得让人每分每秒都扑在手机上。但是我要介绍的这款OFFTIME for Android,却能让你不胜其烦,时时刻刻都有卸载掉它的冲动,甚至还…无法卸载。

OFFTIME 是一款真正的「让你无法拿起手机」的App,它会使出浑身解数,尽手机所能的让你认识到:「你的手机已经被锁死了」

它确实疯狂,但足够有效。

OFFTIME

OFFTIME for Android的LOGO是一个简单的「开关」,它就如同一个开关,按下它,就能让你彻底离开在线生活。

第一次运行

第一次进入OFFTIME for Android,它会申请一些较高的系统权限,需要打开「写入」「隐藏通知」「检测」的权限。同时提供了多种「使用场景」,例如「屏蔽打扰」「专注工作」「睡眠」等,找到自己需要的使用场景,就可以点击下一步了。

申请权限

按照「使用场景」的选择,它会自动设置「拦截电话短信」「限制应用使用」「隐藏通知」等功能,可以自行微调。

当我看到一上来就申请了这些权限,我还是有点紧张的,毕竟Android下权限申请的太高,如果OFFTIME对这些权限使用不够合理,或者存在BUG,就势必会造成重要电话、短信、重要通知被拦截,关键应用使用被限制的情况,好在它没有申请ROOT权限,如果使用中出现了什么问题还可以挽救。

这些配置文件在进入OFFTIME之后均可以修改,但是只能保存一份方案,而「多个方案」则是付费功能。

主界面

进入OFFTIME的主界面之后,是一个「开始」按钮,可供拖动的时钟,拖动就可以设置OFFTIME的开启时间。左下角可以设置应用白名单,右下角则是来点和短信。划到左侧,有OFFTIME定时开启功能、统计数据和设置。「定时开始OFFTIME」和「账户登陆」都是付费功能。

OFFTIME for Android与iOS版本不同,主打功能是它的OFFTIME,其次才是手机时间追踪。

一、OFFTIME for Android 断线时间

凭本事申请的权限 一定要用到

OFFTIME功能,有点类似Forest的种树,但是没有奖惩机制,而且非常严格。
在主界面拖动时钟,点击开始。就开始了OFFTIME。第一次打开的时候,还会申请一些权限来记录和拦截应用,这里的方案就是第一次进入时设置的方案。以后再打开,由于事先申请了权限,不需要设置就会自动把手机调整到工作状态,例如静音、自动拦截电话和短信。
之后的这段时间里就是你的OFFTIME,断线时间了。这时我才意识到它之前申请的所有权限一个不落的全部用到了自己身上。它会自动隐藏通知,自动拦截电话短信,甚至不让你打开任何App。

开始OFFTIME

断线期间 别想玩手机

一旦开启了OFFTIME,每当你解锁了手机屏幕,它马上会推送提醒,同时发出刺耳的警铃声。并且无法打开任何应用。是的,你没有看错,任何不在白名单中的应用,统统打不开。甚至在OFFTIME期间,连「系统设置」都无法打开。所有应用界面都会一闪而过,取而代之的是一个黑框和一些小标语:「似乎你迷失了方向,放松一下」、「想都别想」。
如此严格的限制下唯一能做的,只有努力工作

OFFTIME期间

如果确实有急事要停止OFFTIME,而且为了让你坚定信念,不再中途退出。OFFTIME要求等待1分钟才能正常结束它。图中的45,就是在强制读秒,只有安安静静看完它读了60秒,才能停止OFFTIME。

OFFTIME

二、跟踪手机使用时间

精细到分钟的时间追踪

OFFTIME for Android 的时间追踪功能需要自行开启,在「统计信息」的「目标」中开启,并给予权限之后,时间追踪才算是开始。

统计

OFFTIME有着完备的统计功能。统计信息中包括了「使用量」「OFFTIMES」「位置信息」等,它还将我使用手机的位置信息、对应的使用时间均记录了下来。用OFFTIME来剖析自己一整天的时间、查看这段时间的趋势,自然是再好不过了。

上面有一个「使用日常期限」,点开之后可以设置「每日限制」、「解锁限制」。「每日限制」是一天使用手机的总时间,而「解锁限制」则是一次解锁能使用多久的手机。一旦逾期,马上就会发出一条推送「您已使用了10分钟的手机」并每10分钟推送一次。而且推送还伴随着尖锐的警铃声,而且无法修改。不得不说,这样的功能设置,让人对玩手机充满了愧疚感。

此外,Android版还能查看,一段时间内「发送的短信数量」、「拨打的电话」、「累积使用手机时间」,并且告诉你花费最多的时间段,甚至是「解锁次数」、「每一款应用的使用时间」、「联系人信息」都能统计到。我以为这已经是它的极限了,然而…

三、你可能卸不掉它

这是OFFTIME最丧心病狂的地方,在设置中,可以打开OFFTIME的「严格模式」,将其激活为设备管理器。让我们来看看它的提示:

设置成设备管理器后,(OFFTIME)将会变得更加难以卸载。也许你会奇怪自己为什么会变成这样…OFFTIME的一个目标是通过降低各种形式的分心,帮助你掌控手机的使用频度。如果你的性格不是那么自律,我们会尽最大的努力帮助你拒绝应用。当你显出软弱的时候,我们会通过阻止你中断配置方案或卸载本应用来帮助你限制应用的访问。请自己决定是否授予OFFTIME这样的权力。

为了充分体验这款应用,敬业的我犹豫了一会儿,点下了继续。

无法卸载

于是我开始了一段5分钟的OFFTIME。开始之后和往常一样,依然无法访问白名单以外的其他应用。但是当我想要卸载OFFTIME时,「卸载确认窗口」一闪而过,黑色警告窗口取而代之。真的无法卸载了!

突然想到那天向我安利了这款App的朋友那句戏谑的「哈哈它申请了一个权限叫无法卸载」以及几分钟之后绝望的「它现在已经取得这个权限了…」

四、受制于系统的iOS版OFFTIME

相比凶残的OFFTIME for Android,iOS版本的OFFTIME则是另一个画风。由于两个版本区别较大,我将其分为两篇文章单独做介绍,你可以在这里查看iOS版OFFTIME的详情。

体验总结

在我体验OFFTIME的这段时间里,感受到了Android版的满满的恶意,无法打开其他应用程序,基本上跟锁死了手机没什么两样。它申请的权限相当之高,使用不当也会有严重的后果,但是OFFTIME都用在了正确的地方。所有的权限使用的恰到好处。能确确实实的减少人玩手机的时间。

尽管上文提到了「无法卸载」,当然不是什么黑科技。经过亲自测试,如果确实想要卸载,只需要找对方法,多几个步骤就可以了。它的最终目的依然是为了在你想要放弃的时候,多设置一些阻碍。没有必要在这方面钻牛角尖。

除此之外它还有更多的用途,比如长期失眠的用户,可以在睡眠期间打开OFFTIME,用它来拦截垃圾短信和电话、甚至可以拦截所有的应用通知。醒来还能看到这段时间内有多少垃圾信息通知,便于一一删除。再比如自制力差的学生,每隔一会儿就想玩手机,利用OFFTIME,也能让人收心。OFFTIME能让人更专注于手机以外的事物。

如今的我们,何尝不需要这样一款App,来让24小时沉浸在网络世界的头脑清醒一下呢?

OFFTIME for Android 免费下载,内购可以自愿支付金额选择购买。

酷安网下载
Google Play下载

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。 首先,你需要在QT中使用QTcpSocket类来实现TCP客户端。QTcpSocket类提供了许多方法来连接到服务器、发送和接收数据等。 要实现断线重发机制,你可以使用QTcpSocket的信号和槽机制,来检测连接状态并进行相应的处理。例如,当连接断开时,你可以通过QTcpSocket的disconnected信号来捕获这个事件,并在槽函数中实现重连机制。 此外,你可以使用QTcpSocket的error信号来捕获连接错误,并在槽函数中实现重发机制。具体的实现方式可以根据你的具体需求进行调整。 下面是一个简单的示例代码,演示如何使用QTcpSocket类实现带断线重发机制的TCP客户端: ```cpp QTcpSocket *socket = new QTcpSocket(this); connect(socket, SIGNAL(connected()), this, SLOT(onConnected())); connect(socket, SIGNAL(disconnected()), this, SLOT(onDisconnected())); connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError))); socket->connectToHost("server_ip", server_port); void MyClass::onConnected() { // 连接成功后的处理 } void MyClass::onDisconnected() { // 连接断开后的处理 socket->connectToHost("server_ip", server_port); // 重新连接 } void MyClass::onError(QAbstractSocket::SocketError error) { // 连接错误后的处理 if (error == QAbstractSocket::RemoteHostClosedError) { // 远程主机关闭连接,进行重发处理 } else if (error == QAbstractSocket::ConnectionRefusedError) { // 连接拒绝,进行重连处理 socket->connectToHost("server_ip", server_port); } else { // 其他错误,进行相应处理 } } ``` 以上代码仅是一个简单示例,具体的实现方式需要根据你的实际需求进行调整。同时,为了确保程序的稳定性和可靠性,建议你在测试和使用过程中,仔细检查代码,保证程序的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值