精华内容
下载资源
问答
  • 破解屏幕使用时间,无需电脑,丢数据 先说一下: 1.它能够关闭屏幕使用时间 2.它能获取屏幕使用时间密码 背景:现在,IOS 13及以后的屏幕使用时间越来越难破了,安全不断加强,现在,要有电脑,有备份,有开机密码才能破解...

    IOS13破解屏幕使用时间,无需电脑,不丢数据

    先说一下:

          1.它能够关闭屏幕使用时间
          2.它不能获取屏幕使用时间密码
    

    读前提示:

         1.没有浏览器用qq/微信,给自己发送链接
           自己点开
         2.不用电脑安装ipa方法:
               1.快捷指令法:
                  (请自行上网搜)
               2.JBOX法
               链接:https://pan.baidu.com/s/1DinLrLc0T5PXbz06N2n3hA 提取码: 2ype
               Appstore里安装JBOX,导入此脚本
               选择ipa,选择jbox打开,选择安装ipa脚本
    

    故事开始:

    我,也是一个受限的学生,不过,现在,再也不用受限了(被老妈发现以前)

    第一步,越狱(自由发挥):
    我的方式是:
    1.下载安装unc0ver企业签名版(最近出了ios13的支持,必须签过名)
    链接:https://download.csdn.net/download/weixin_45583880/12503315
    若掉签(装不上),有两个选择:
    (1).要么apple id自签(需要本机apple id及密码,还有UDID,如果是家长的机子,那么几乎不可能)

    (2).要么把安装失败的unc0ver删了,打开wifi,点已连接的wifi名的右侧的感叹号
    拉到最下面点配置代理,选自动
    输入:http://ffapple.com
    储存后重连wifi
    再打开设置,点Safari,点清除历史记录
    再安装

    2.一键越狱

    第二步,关掉屏幕使用时间:
    越狱后安装filza文件管理器,进入/var/mobile/Library/Preferences文件夹
    找到com.apple.ScreenTimeAgent.plist,再次提醒,不是获取密码,而是直接关闭(然后重新设个,嘿嘿)

    我打开后是这样的:
    在这里插入图片描述
    把选项翻译一下,第二个便是开关屏幕使用时间(ScreenTimeEnabled),把下面的true改为false,保存.

    还可以继续翻译,搞一搞其他选项…

    无论你的打开是什么样的,只要把ScreenTimeEnabled改成false就行了

    然后重启

    一开机便发现,屏幕使用时间没了呀!

    重要!

    一定要自己设个密码,防止被发现!!!

    展开全文
  • Android小应用——监控屏幕使用时间

    千次阅读 2014-04-23 12:03:44
    Android小应用——监控屏幕使用时间 idea来源 这个idea是蔡小亦童鞋提出来的。她说看到一条报道说有人看手机看太久眼睛怎么怎么了,所以想弄个应用来监控屏幕使用时间。答应帮她做已经答应很久了,刚好这...

    Android小应用——监控屏幕使用时间

    idea来源

    这个idea是蔡小亦童鞋提出来的。她说看到一条报道说有人看手机看太久眼睛怎么怎么了,所以想弄个应用来监控屏幕使用时间。答应帮她做已经答应很久了,刚好这周没什么事了,于是就开始做。从开始找资料到写代码到美工到调试完成,只花了1天时间,不错不错~因为我觉得这个做得很粗糙别人不可能会怎么用,所以我就针对蔡小亦童鞋定制了流氓兔形象,哦哈哈是不是该感谢我~

     

    预期目标

    1、能记录屏幕使用时间

    2、每天凌晨清空数据,重新记录

    3、用户可以自定义警戒线,当使用时间超过警戒线则在通知栏提醒。

     

    主要代码

    复制代码
     1 package com.legend;
     2 
     3 import java.text.SimpleDateFormat;
     4 import java.util.Date;
     5 
     6 import android.app.Activity;
     7 import android.content.Context;
     8 import android.content.Intent;
     9 import android.content.SharedPreferences;
    10 import android.os.Bundle;
    11 import android.view.View;
    12 import android.view.View.OnClickListener;
    13 import android.widget.Button;
    14 import android.widget.EditText;
    15 import android.widget.TextView;
    16 import android.widget.Toast;
    17 
    18 /**
    19  * 目前先实现最小功能,只提取出总的屏幕亮的时间
    20  * 通过广播来接收屏幕是否启动这个事件
    21  * @author 林培东
    22  */
    23 public class MainActivity extends Activity 
    24 {
    25     public TextView summary=null;
    26     public TextView preset=null;
    27     public EditText set=null;
    28     public Button submit=null;
    29     
    30     @Override
    31     public void onCreate(Bundle savedInstanceState) 
    32     {
    33         super.onCreate(savedInstanceState);
    34         setContentView(R.layout.main);
    35         startService(new Intent("com.legend.SERVICE_DEMO"));//启动服务
    36         
    37         summary=(TextView)findViewById(R.id.summary);
    38         preset=(TextView)findViewById(R.id.preset);
    39         set=(EditText)findViewById(R.id.set);
    40         submit=(Button)findViewById(R.id.submit);
    41 
    42         //显示已使用屏幕时间
    43           SharedPreferences sp=getSharedPreferences("actm", Context.MODE_PRIVATE);       
    44           int sum=(int)sp.getLong("sum", 0L)/1000;
    45           int hour=sum/3600;
    46           int minute=(sum-hour*3600)/60;
    47           int second=sum%60;
    48           //格式化输出日期
    49           Date tmp=new Date();
    50           tmp.setHours(hour);
    51           tmp.setMinutes(minute);
    52           tmp.setSeconds(second);
    53           SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
    54           String result=sdf.format(tmp);
    55           summary.setText(result);//最终显示
    56           
    57           //显示已保存的设置
    58           int limit=sp.getInt("limit", 24*60);
    59           preset.setText(" 当前设定的预警分钟数为"+Integer.toString(limit));
    60           
    61           //点击确定后重新设置
    62           submit.setOnClickListener(new OnClickListener()
    63           {
    64             @Override
    65             public void onClick(View v)
    66             {
    67                 String tmp=set.getText().toString();
    68                 if(tmp.equals(""))
    69                     Toast.makeText(MainActivity.this, "输入不能为空!", Toast.LENGTH_SHORT).show();
    70                 else
    71                 {
    72                     SharedPreferences sp=getSharedPreferences("actm", Context.MODE_PRIVATE);
    73                     SharedPreferences.Editor editor=sp.edit();
    74                     editor.putInt("limit", Integer.parseInt(tmp));
    75                     editor.commit();
    76                     Toast.makeText(MainActivity.this, "已设定!", Toast.LENGTH_SHORT).show();
    77                     preset.setText(" 当前设定的预警分钟数为"+Integer.parseInt(tmp));
    78                 }
    79             }             
    80           });
    81           
    82     }
    83     
    84 }
    复制代码
    复制代码
      1 package com.legend;
      2 
      3 import java.util.Date;
      4 import java.util.Timer;
      5 import java.util.TimerTask;
      6 
      7 import android.app.Notification;
      8 import android.app.NotificationManager;
      9 import android.app.PendingIntent;
     10 import android.app.Service;
     11 import android.content.BroadcastReceiver;
     12 import android.content.Context;
     13 import android.content.Intent;
     14 import android.content.IntentFilter;
     15 import android.content.SharedPreferences;
     16 import android.os.IBinder;
     17 
     18 /**
     19  * 创建一个服务,该服务主要用来接收广播和创建定时器
     20  * @author 林培东
     21  */
     22 public class LocalService extends Service
     23 {
     24     private static final int NOTIFY_ID=1234;//通知的唯一标识符
     25     
     26     //主要功能,广播接收器
     27     private final BroadcastReceiver receiver=new BroadcastReceiver()
     28     {
     29         @Override
     30         public void onReceive(Context context, Intent intent)
     31         {
     32             SharedPreferences sp=getSharedPreferences("actm", Context.MODE_PRIVATE);
     33             SharedPreferences.Editor editor=sp.edit();
     34             
     35             if(intent.getAction().equals(Intent.ACTION_SCREEN_ON))
     36             {
     37                 //保存屏幕启动时的毫秒数                
     38                 editor.putLong("lasttime", new Date().getTime());
     39                 editor.commit();
     40                 
     41                 //根据需要看是否需要在通知栏提醒
     42                 int sum=(int)sp.getLong("sum", 0L)/1000;
     43                 int limit=sp.getInt("limit", 1440)*60;
     44                 if(limit<=sum)
     45                 {
     46                     final NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//获取通知管理器
     47                     Notification notification=new Notification(R.drawable.ic_launcher,"警告",System.currentTimeMillis());//通知的时机
     48                     notification.flags = Notification.FLAG_AUTO_CANCEL;//点击一次通知就自动消失
     49                     PendingIntent pIntent=PendingIntent.getActivity(context,0,new Intent(context,MainActivity.class),0);//跳转到主界面
     50                     notification.setLatestEventInfo(context,"警告","本日使用屏幕已超过预设,如需取消该警告请重新设置!!!",pIntent);//通知栏显示内容
     51                     manager.notify(NOTIFY_ID, notification);//执行
     52                 }
     53             }
     54             else if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
     55             {
     56                 //保存屏幕总工作时间
     57                 long lasttime=sp.getLong("lasttime", new Date().getTime());
     58                 long sum=sp.getLong("sum", 0L);
     59                 sum+=new Date().getTime()-lasttime;
     60                 editor.putLong("sum", sum);
     61                 editor.commit();
     62             }
     63         }
     64     
     65     };
     66 
     67     @Override
     68     public void onCreate()
     69     {
     70         //添加过滤器并注册
     71         final IntentFilter filter=new IntentFilter();
     72         filter.addAction(Intent.ACTION_SCREEN_ON);
     73         filter.addAction(Intent.ACTION_SCREEN_OFF);
     74         registerReceiver(receiver, filter);
     75                 
     76         //创建计划任务
     77         TimerTask task=new TimerTask()
     78         {
     79             @Override
     80             public void run()
     81             {
     82                 //每天凌晨自动更新数据
     83                 SharedPreferences sp=getSharedPreferences("actm", Context.MODE_PRIVATE);
     84                 SharedPreferences.Editor editor=sp.edit();
     85                 editor.putLong("sum", 0L);
     86                 editor.commit();
     87                 
     88                 //取消通知栏通知
     89                 final NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
     90                 manager.cancel(NOTIFY_ID);
     91             }           
     92         };
     93         Timer timer=new Timer(true);
     94         int hour=new Date().getHours();
     95         timer.schedule(task,(24-hour)*3600*1000, 24*3600*1000);
     96         //timer.schedule(task,180*1000, 180*1000);//测试用
     97         
     98         super.onCreate();
     99     }
    100     
    101     @Override
    102     public IBinder onBind(Intent arg0)
    103     {
    104         return null;
    105     }
    106 
    107 }
    复制代码
    复制代码
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="fill_parent"
     4     android:layout_height="fill_parent"
     5     android:background="@drawable/background"
     6     android:orientation="vertical" >
     7 
     8     <TextView
     9         android:layout_width="fill_parent"
    10         android:layout_height="wrap_content"
    11         android:textSize="25dp"
    12         android:text="今天屏幕总共使用"
    13         android:textColor="#000000"
    14         android:gravity="center" />
    15     
    16     <TextView
    17         android:id="@+id/summary"
    18         android:layout_width="fill_parent"
    19         android:layout_height="wrap_content"
    20         android:textSize="50dp"
    21         android:textColor="#000000"
    22         android:gravity="center" />
    23 
    24     <TextView
    25         android:id="@+id/preset"
    26         android:layout_width="fill_parent"
    27         android:layout_height="wrap_content"
    28         android:textColor="#000000"/>
    29     
    30     <EditText
    31         android:id="@+id/set"
    32         android:layout_width="fill_parent"
    33         android:layout_height="wrap_content"
    34         android:hint="请输入预警提醒分钟数,如80"
    35         android:inputType="number" />
    36     
    37     <Button
    38         android:id="@+id/submit"
    39         android:layout_width="fill_parent"
    40         android:layout_height="wrap_content"
    41         android:text="确定提交" />
    42 
    43 </LinearLayout>
    复制代码
    复制代码
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.legend"
     4     android:versionCode="1"
     5     android:versionName="1.0" >
     6 
     7     <uses-sdk android:minSdkVersion="4" />
     8 
     9     <application
    10         android:icon="@drawable/ic_launcher"
    11         android:label="@string/app_name" >
    12         <activity
    13             android:name=".MainActivity"
    14             android:label="@string/app_name" >
    15             <intent-filter>
    16                 <action android:name="android.intent.action.MAIN" />
    17 
    18                 <category android:name="android.intent.category.LAUNCHER" />
    19             </intent-filter>
    20         </activity>
    21         
    22         <service android:name=".LocalService"> 
    23             <intent-filter> 
    24                 <action android:name="com.legend.SERVICE_DEMO" /> 
    25                 <category android:name="android.intent.category.default" /> 
    26             </intent-filter> 
    27         </service>
    28     </application>
    29 
    30 </manifest>
    复制代码

     

    项目分析

    我遇到的第一个问题是:如何监控?

    经过查资料,我发现当屏幕启用或者锁屏时,系统会分别发送ACTION_SCREEN_ON和ACTION_SCREEN_OFF这两个广播。我们只需要在接收这两个广播时记录时间就可以了。

    注意:为了时程序退出后也能运行,必须使用Service。

    注意:这两个广播是受保护的,只能在代码中注册。

    下面是在Service中注册:

            //添加过滤器并注册
            final IntentFilter filter=new IntentFilter();
            filter.addAction(Intent.ACTION_SCREEN_ON);
            filter.addAction(Intent.ACTION_SCREEN_OFF);
            registerReceiver(receiver, filter);

    在接收器receiver里,定义了onReceive()来处理这些数据,主要功能都在里面实现:

    复制代码
        //主要功能,广播接收器
        private final BroadcastReceiver receiver=new BroadcastReceiver()
        {
            @Override
            public void onReceive(Context context, Intent intent)
            {
                SharedPreferences sp=getSharedPreferences("actm", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor=sp.edit();
                
                if(intent.getAction().equals(Intent.ACTION_SCREEN_ON))
                {
                    //保存屏幕启动时的毫秒数                
                    editor.putLong("lasttime", new Date().getTime());
                    editor.commit();
                    
                    //根据需要看是否需要在通知栏提醒
                    int sum=(int)sp.getLong("sum", 0L)/1000;
                    int limit=sp.getInt("limit", 1440)*60;
                    if(limit<=sum)
                    {
                        final NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//获取通知管理器
                        Notification notification=new Notification(R.drawable.ic_launcher,"警告",System.currentTimeMillis());//通知的时机
                        notification.flags = Notification.FLAG_AUTO_CANCEL;//点击一次通知就自动消失
                        PendingIntent pIntent=PendingIntent.getActivity(context,0,new Intent(context,MainActivity.class),0);//跳转到主界面
                        notification.setLatestEventInfo(context,"警告","本日使用屏幕已超过预设,如需取消该警告请重新设置!!!",pIntent);//通知栏显示内容
                        manager.notify(NOTIFY_ID, notification);//执行
                    }
                }
                else if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
                {
                    //保存屏幕总工作时间
                    long lasttime=sp.getLong("lasttime", new Date().getTime());
                    long sum=sp.getLong("sum", 0L);
                    sum+=new Date().getTime()-lasttime;
                    editor.putLong("sum", sum);
                    editor.commit();
                }
            }
        
        };
    复制代码

     

    另一个问题是如何在每天凌晨自动把sum置零。一开始我查资料找到了ACTION_DATE_CHANGED这个广播,但测试时发现不可靠,网上也说了这个广播各种不可靠。

    这里做了说明:http://4develop.in/csdn/Android/20111230_12_f516e79c-d732-4963-961b-4e0bd2f35437/1

    于是,只能忍痛使用定时器来制定计划任务了:Timer和TimerTask。

    复制代码
            //创建计划任务
            TimerTask task=new TimerTask()
            {
                @Override
                public void run()
                {
                    //每天凌晨自动更新数据
                    SharedPreferences sp=getSharedPreferences("actm", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor=sp.edit();
                    editor.putLong("sum", 0L);
                    editor.commit();
                    
                    //取消通知栏通知
                    final NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
                    manager.cancel(NOTIFY_ID);
                }           
            };
            Timer timer=new Timer(true);
            int hour=new Date().getHours();
            timer.schedule(task,(24-hour)*3600*1000, 24*3600*1000);
            //timer.schedule(task,180*1000, 180*1000);//测试用
    复制代码

     

    再有就是学习了如何使用通知栏来推送消息。

    可以参考:http://fanwei51880.blog.163.com/blog/static/32406740201052754236166/

    复制代码
    final NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//获取通知管理器
    Notification notification=new Notification(R.drawable.ic_launcher,"警告",System.currentTimeMillis());//通知的时机
    notification.flags = Notification.FLAG_AUTO_CANCEL;//点击一次通知就自动消失
    PendingIntent pIntent=PendingIntent.getActivity(context,0,new Intent(context,MainActivity.class),0);//跳转到主界面
    notification.setLatestEventInfo(context,"警告","本日使用屏幕已超过预设,如需取消该警告请重新设置!!!",pIntent);//通知栏显示内容
    manager.notify(NOTIFY_ID, notification);//执行
    复制代码

     

    最后,上一下截图:

     

    --------------------------------------后记-------------------------------------------

    本来以为很简单的,没想到修改了两次才能正常运作:不知道为什么系统老是把资源回收了,结果凌晨都无法自动清空数据。

    第一次修改,是取消守护线程了。之前对这个不了解,查了下资料,原来所谓的守护线程,就是当线程要守护的资源不存在时,这个线程也就退出了。所以我想这就是原因了吧,修改,还信心满满地以为不用测试了。

    结果零点就不行了,严重被打击==!

    无奈之下,只好用最原始的方法了:监听Intent.ACTION_TIME_TICK这个广播,因为它一分钟就发送一次,是个可靠的广播,只要判断下时间点,就可以决定是否更新了。

    其实这个方法我很早就想到了,只是我觉得这样每分钟都要做一次判断,太麻烦和太耗资源了。这算是程序员的通病吧。

    所以,通过这个小软件,我也有了一点体会:功能第一,性能第二。因为用户最后用的是你的软件的功能,而性能是很难看出来的;只要影响不大的话。

    所以,真的不应该在这个问题上钻牛角尖,一定要最优化。

    最后,修改后的代码:

    复制代码
      1 package com.legend;
      2 
      3 import java.util.Calendar;
      4 import java.util.Date;
      5 
      6 import android.app.Notification;
      7 import android.app.NotificationManager;
      8 import android.app.PendingIntent;
      9 import android.app.Service;
     10 import android.content.BroadcastReceiver;
     11 import android.content.Context;
     12 import android.content.Intent;
     13 import android.content.IntentFilter;
     14 import android.content.SharedPreferences;
     15 import android.os.IBinder;
     16 
     17 /**
     18  * 创建一个服务,该服务主要用来接收广播和创建定时器
     19  * @author 林培东
     20  */
     21 public class LocalService extends Service
     22 {
     23     private static final int NOTIFY_ID=1234;//通知的唯一标识符
     24     private Calendar cal=null;
     25     
     26     //主要功能,广播接收器
     27     private final BroadcastReceiver receiver=new BroadcastReceiver()
     28     {
     29         @Override
     30         public void onReceive(Context context, Intent intent)
     31         {
     32             SharedPreferences sp=getSharedPreferences("actm", Context.MODE_PRIVATE);
     33             SharedPreferences.Editor editor=sp.edit();
     34             
     35             if(intent.getAction().equals(Intent.ACTION_SCREEN_ON))
     36             {
     37                 //保存屏幕启动时的毫秒数                
     38                 editor.putLong("lasttime", new Date().getTime());
     39                 editor.commit();
     40                 
     41                 //根据需要看是否需要在通知栏提醒
     42                 int sum=(int)sp.getLong("sum", 0L)/1000;
     43                 int limit=sp.getInt("limit", 1440)*60;
     44                 if(limit<=sum)
     45                 {
     46                     final NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//获取通知管理器
     47                     Notification notification=new Notification(R.drawable.ic_launcher,"警告",System.currentTimeMillis());//通知的时机
     48                     notification.flags = Notification.FLAG_AUTO_CANCEL;//点击一次通知就自动消失
     49                     PendingIntent pIntent=PendingIntent.getActivity(context,0,new Intent(context,MainActivity.class),0);//跳转到主界面
     50                     notification.setLatestEventInfo(context,"警告","本日使用屏幕已超过预设,如需取消该警告请重新设置!!!",pIntent);//通知栏显示内容
     51                     manager.notify(NOTIFY_ID, notification);//执行
     52                 }
     53             }
     54             else if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
     55             {
     56                 //保存屏幕总工作时间
     57                 long lasttime=sp.getLong("lasttime", new Date().getTime());
     58                 long sum=sp.getLong("sum", 0L);
     59                 sum+=new Date().getTime()-lasttime;
     60                 editor.putLong("sum", sum);
     61                 editor.commit();
     62             }
     63             else if(intent.getAction().equals(Intent.ACTION_TIME_TICK))
     64             {
     65                 cal=Calendar.getInstance();
     66                 if(cal.get(Calendar.HOUR_OF_DAY)==0 && cal.get(Calendar.MINUTE)==0)
     67                 {
     68                     //每天凌晨自动更新数据
     69                     editor.putLong("sum", 0L);
     70                     editor.commit();
     71                     
     72                     //取消通知栏通知
     73                     final NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
     74                     manager.cancel(NOTIFY_ID);
     75                 }
     76             }
     77             
     78         }
     79     
     80     };
     81 
     82     @Override
     83     public void onCreate()
     84     {
     85         //添加过滤器并注册
     86         final IntentFilter filter=new IntentFilter();
     87         filter.addAction(Intent.ACTION_SCREEN_ON);
     88         filter.addAction(Intent.ACTION_SCREEN_OFF);
     89         filter.addAction(Intent.ACTION_TIME_TICK);
     90         registerReceiver(receiver, filter);
     91         
     92         super.onCreate();
     93     }
     94     
     95     @Override
     96     public IBinder onBind(Intent arg0)
     97     {
     98         return null;
     99     }
    100 
    101 }
    复制代码

     


    展开全文
  • 反而是那些极易形成短回路反馈一直被激活,一直被强化,我们自觉得停在了这个舒适区,连时间都厌弃了我们。 又或者,你发现你的孩子一直沉迷手机,你想要控制它使用手机的时间。怎么办? 如果你也和我一样想赢回...

    背景

    时间不知不觉间就从网瘾少年的指缝间溜走了,最后换来的还是无尽的空虚。在这些浪费的时间里,那些支离破碎的文字与音频、那些及时的奖励与快感并没有帮网瘾少年构建和照亮大脑中灰暗的区域。反而是那些极易形成短回路一直被激活,一直被强化,最终陷入死循环,网瘾少年不自觉得停在了这个舒适区,连时间都厌弃了他们。

    他们没有时间进入深度阅度、没有时间进入深度思考,一切想法都浮在表面。

    他们少睡还多梦,更恐怖的是头发日益稀疏。

    救救网瘾少年吧!


    不扯了,一句话是,我们自控力差怎么办?

    又或者,你发现你的孩子一直沉迷手机,你想要控制它使用手机的时间。怎么办?

    如果你也和我一样想赢回时间的心,或者想帮孩子克服手机瘾,我们可以试试让手机主动地控制我们使用各个APP的时长。

    苹果最先出了能限制各个APP使用时长的软件,小米、华为的最新系统也支持了该功能。但是我用的一加,手机系统还没自带这种功能。

    不过还好,我从google play上找到了评分4.8的无广告应用[Screen Time,中文名叫屏幕时间],可以让所有安卓手机具备这种功能。

    该应用是中文的、无广告的、免费的!!!

    该应用是中文的、无广告的、免费的!!!

    该应用是中文的、无广告的、免费的!!!

    开始我在腾讯的应用宝上找到一款可以满足要求的应用[名字叫:防沉迷应用锁],但是它是收费的,而且这一款时间管理软件界面做的真的不敢恭维,里面的设置也忒麻烦啦。耐心不好的人,估计一看界面和设置过程就调头弃了。

    screen time, 应用评分高达4.8

    在这里插入图片描述

    应用评价情况

    在这里插入图片描述

    软件图标

    在这里插入图片描述

    软件有三个主界面:屏幕时间、限额、设置

    1. 屏幕时间界面

    屏幕时间界面主要显示当天与过去7天的各APP使用情况,以及总使用情况。如下图是我今天使用农药的情况(不好意思,昨天晚上12点想着排位升钻石,一不小心就到今天1点半,我要反思)。
    在这里插入图片描述

    2.限额

    限额界面主要是设定你想要限制使用时间的APP,以及设定限制使用时间。

    • 点击某一个应用名字【此处以农药为例】
      在这里插入图片描述

    • 输入screen time的密码(这个密码在设置界面设定,稍后)
      在这里插入图片描述

    • 点击时间
      在这里插入图片描述

    • 设定该应用的每天允许使用时长【我设定农药的每天允许使用时长为1小时】
      在这里插入图片描述

    你也可以点击编辑应用,选取更多你想要管理的软件,像微信、QQ、其化耗时的小视频软件等。

    3. 设置界面

    第一行的屏幕时间控该软件是否开启作用手机。像有些时候,例如放假,例如过年,例如你已经做好颓废(lang)一天的打算时=v=,你就可以关闭该屏幕时间,它就不会控制你的手机。多说一句,关闭屏幕时间按钮也是需要密码的哈!

    通知一栏,应该当某个设定的软件使用时长超限时,会跳出通知信息。

    点击始终允许,可以进行将一些你不想被管控的软件,一些明显不会让你深陷的软件,例如:通话、支付宝、短信…,你就可以进去把它们都列为不受管控对象。

    最下面的更改屏幕时间密码,就是更改该软件的密码。这个密码作用大着呢。2.2节,我要更改农药的使用时长,得先输入该密码才能进入更改界面。哈哈,如果你想控制你孩子的手机,这个软件超好用。 第一次进入设置,它会显示让你设定密码。
    在这里插入图片描述

    最终效果

    小明没忍住,又想玩一把农药,打开后,哈哈!由于软件记录的时间是从凌晨开始的,我今天使用农药的时间是1h36m,超出了我设定的限额。我今天玩不了游戏了。。。。吗?我可以点击“请求更多使用时间”,因为我知道我screen time的密码。作弊。。。。
    在这里插入图片描述

    结语

    screen time可以帮你记录手机各APP使用时长,并能够根据你针对每个APP设定的时间限额,单独管理。一旦超出限额,它会帮你主动锁定该应用。使用方法主要有以下三种:

    1. 两人互相监督使用效果会更好,找一个同样想管理时间的战友,你们互相约定,给彼此设定screen time的密码。

    2. 该应用也可以作为家长监控孩子使用手机时长的软件。

    3. 如果是自己用,也是非常不错的。你就像请了一个不讨好的监控者,一旦你错了,他就会毫不留情的批判你。只要我们还心存一点悔过之心(废话,如果没有,能主动搜过并安装这软件?),经过它日积月累的鞭笞,我想肯定有一定改变的。

    这款应用有一个bug,对于不是主动受控对象,例如孩子,他们如果发现是这个应用控制他了,那么它急了把这个应用删掉了咋办?
    还好,下载这款应用的条件还是挺高的【tizi】,对于一个小学生来说,你不教它,应该挺难的。如果,你回来检查手机,发现screen time被卸载了,怎么办?打他!打他!打他!哈哈,开玩笑啦!我还是建议以德服人的。我们至少知道,他有没有按要求来,至于要怎么处理,不同的小孩,应该方法也是不一样的。

    最后的最后:"网瘾少年"在本篇中只是作调侃语用,并无抨击任何行为。像有些父母没时间,或者没方法“改变”自己孩子,却宁愿相信那些“戒网瘾学校与机构”。如果,你没有时间教育自己的孩子,真的,我劝你要好好思考一下是否要生育。


    以上

    展开全文
  • Linux Screen 记录屏幕日志

    千次阅读 2019-08-17 16:20:01
    使用screen难免遇到这种情况,当screen输出太长时屏幕滚动,能看到全部信息。 解决这个问题可以将输出打印到日志中。 第一种方法: 启动时添加选项-L(Turn on output logging.),会在当前目录下生成screenlog.0...

    使用screen难免遇到这种情况,当screen输出太长时屏幕滚动,不能看到全部信息。
    解决这个问题可以将输出打印到日志中。

    第一种方法:

    启动时添加选项-L(Turn on output logging.),会在当前目录下生成screenlog.0文件。

    screen -L -dmS test #启动一个开始就处于断开模式的会话,会话的名称是test
    screen -r test #连接该会话,在会话中的所有屏幕输出都会记录到screenlog.0文件。
    

    注:
    如果执行-L命令后看不到新建的日志,可能是文件读写权限不够,e.g. sudo chmod 777 filename可以修改文件读写权限。

    第二种方法:

    不加选项-L,启动后,在screen session下按ctrl+a H,同样会在当前目录下生成screenlog.0文件。

    第一次按下ctrl+a H,屏幕左下角会提示Creating logfile “screenlog.0”.,开始记录日志。

    再次按下ctrl+a H,屏幕左下角会提示Logfile “screenlog.0” closed.,停止记录日志。

    上面两个方法有个缺点:当创建多个screen会话的时候,每个会话都会记录日志到screenlog.0文件。screenlog.0中的内容就比较混乱了。

    解决方法:让每个screen会话窗口有单独的日志文件。

    第三种方法(推荐):

    在screen配置文件/etc/screenrc最后添加下面一行:

    logfile /tmp/screenlog_%t.log
    

    注意,如果写成:logfile ./screenlog_%t.log 则是把日志文件记录到当前目录下
    %t是指window窗口的名称,对应screen的-t参数。所以我们启动screen的时候要指定窗口的名称,例如:

    screen -L -t window1 -S test
    

    意思是启动test会话,窗口名称为window1。屏幕日志记录在/tmp/screenlog_window1.log。

    如果启动的时候不加-L参数,在screen session下按ctrl+a H,日志也会记录在/tmp/screenlog_window1.log。。

    参考:
    Linux Screen技巧:记录屏幕日志

    展开全文
  • 使用传统AV屏幕用作树莓派屏幕

    千次阅读 2018-10-28 12:47:35
    因为做项目买的7寸AV接口TFT屏幕一直吃灰,前一段时间刚入手树莓派3B+又想买屏幕(其实是经费不足qaq)就想把以前买的屏幕用起来。恰好3B+有3.5mm AV输出端口,不过令人遗憾的是莲花头视频线的头是2.5mm的,所以...
  • 在Linux中,有很多的命令在执行完后知道得到返回结果,因此能判断是否执行成功,比如:scp、ftp、unzip等命令,如果是手动执行则会打印在当前屏幕上,根据屏幕上所显示的日志可以判断出是否执行成功。...
  • 目录 监控电脑屏幕? 实现思路 1、通过windows脚本,一定时间间隔进行屏幕抓拍
  • 首先感谢大神JessYan的创神之作《AndroidAutoSize》,大神以今日头条屏幕适配的核心代码为基础进行了扩展封装,产生了《AndroidAutoSize》这个能快速接入使用屏幕适配方案,这个屏幕适配方案是我遇到的截止2020.9....
  • 如何在 Linux 中使用屏幕键盘

    千次阅读 2014-12-30 22:22:35
    转自如何在 Linux 中使用屏幕键盘 屏幕键盘可以作为实体键盘输入的替代方案。在某些时候,屏幕键盘显得非常需要。 比如, 你的键盘刚好坏了;你的机器太多,没有足够的键盘;你的机器没有多余的接口来连接...
  • 微信小程序记录用户行为浏览记录和停留时间以及小程序全局分享 项目需求 1、后台统计一个用户在我们小程序的每个页面的停留时间 2,前台用户可以在个人中心看到自己的分享记录以及多少人查看 需求分析 需求一:想要...
  • 车子放了一个礼拜,360行车记录仪无法开机了,怎么按都没反应,屏幕完全是黑的。 取下了SD卡,再试也不行,拿回家用手机充电器插着也没反应。 客服说,需要在家充一晚的电,然后再按开机键10秒,就可以了。 还是...
  • 三Script命令结合实际使用场景 1 先在终端执行script命令记录scp命令过程 2 在脚本文件中添加script命令来记录scp的执行过程 四总结 五参考链接一、背景在之前的博客 【Git学习–>如何通过Shell脚本实现 监控Gitla
  • 良好的日志是应用程序调试、质量跟踪的重要线索,因此在应用开发过程中应当养成良好的日志记录习惯。在Python中内建了logging模块,可以使用该模块生成高质量的应用程序日志。基本用法默认情况下,logging将日志打印...
  • 其实,在某些特殊的场景下,记录电脑使用者的操作还是很有必要的。比如,银行记录柜员日常操作当作日后规范流程的数据,或者是日后存证;再比如,作为家长记录孩子使用电脑的情况等。 截屏功能的实现 Python有...
  • PyQt5制作屏幕实时获取界面,采用matplotlib库实现波形图
  • 让iPhone屏幕常亮变暗的方法

    千次阅读 2011-02-12 09:07:00
    如果您希望运行自己开发的App时,iPhone的屏幕不再自动变暗,可以使用以下方法让屏幕常亮: <br /> iPhone OS用一个布尔值用来控制是否取消应用程序空闲时间:@property(nonatomic, getter=...
  • 一个ubuntu的小白,由于学习需要接触的...之前在网上搜到的都是要下载电源资源管理包的,也就是 grep laptop-mode-tools 这个包,我试了一遍是不使用我的情况,所以记录下自己的解决办法。 首先我觉得是显卡驱动...
  • 我们在进行react native开发时会发现,在打开应用的时候总是会有一段白屏时间的出现,这对于用户来说是能忍的,所以我在网上寻找一番后,发现有一款插件已经解决了这个问题。 这就是react-native-splash-screen...
  • 好多平时喜欢写技术博客的朋友,都...而关于移动开发的文章,运行结果都呈现在手机上,如果这时候选择截取静态图片,恐怕仍具生动,这时候如何将手机上的动态操作生成为GIF插入到博客中呢?  许多朋友可能用过ADB S
  • python3.6使用line-profiler踩坑记录

    千次阅读 2019-06-03 11:24:11
    前两天在服务器上使用top指令后看到load average到达了11.96, 12.78, 13.58,对于8核的机器来说这个load有些偏高了,之前load一般保持在5左右。于是,在top中按C查看进程详情,发现有一个脚本开了多进程,并且每个...
  • 1.清除最近使用过的文档记录

    万次阅读 2009-03-27 17:21:00
    1.清除最近使用过的文档记录 以WindowsXP为例,右键点击“开始”按钮,选择“属性”,在弹出的设置任务栏和开始菜单属性对话窗中点“自定义”按钮,在“自定义开始菜单”对话框中的“高级”标签下点“清除列表”。...
  • Android studio Mac版 安装及使用记录

    千次阅读 2017-09-26 09:52:25
    Android studio Mac版最近要求写一个Android APP ,昨天花了相当长的时间来安装了 Android studio Mac版,总结一下经验。 1.下载Android studio 官网地址:...
  • Flutter布局锦囊---屏幕顶部提醒

    千次阅读 2019-01-07 22:13:59
    “提醒页面”,显示在屏幕上方的文字提醒页面,不会覆盖原路由页面。 “路由导航”,使用Flutter的路由与导航组件来推(push)提醒页面。 “倒计时抛”,使用Flutter的倒计时组件自动抛(pop)提醒页面。 “过渡...
  • Glide配合PhotoView使用时,设置占位图出现放大缩小时宽高显示出问题的解决方案
  • 远程屏幕监控系统

    千次阅读 2018-05-12 20:41:13
    完整代码以及本文的word都在放在了Github上,你可以下载或使用它:远程屏幕监控系统项目地址,如果喜欢的话,就去点个Star吧 摘要 远程屏幕监控系统在生活中是很常见的,学校机房的机房管理系统、PC版QQ的远程...
  • Android屏幕适配攻略

    千次阅读 2016-05-04 12:24:42
    Android屏幕适配攻略 为什么Android需要适配? 屏幕适配所需要知道的? 配置限定符使用; 4种适配方案
  • Android屏幕直播方案

    千次阅读 2017-02-24 12:14:11
    项目需求是实时同步Android手机屏幕画面至浏览器。这里有两个挑战,一是Android如何在应用内获得屏幕实时视频流,另一个是如何在浏览器上做视频直播。...Android 5.0版本之后,支持使用MediaProjection的方式获取
  • 有没有什么办法能够获得安卓手机的屏幕点击次数,就是不管处于哪个应用,只要开始统计,就会统计一定时间内点击屏幕的总次数
  • 百度地图获取手机屏幕坐标

    千次阅读 2016-04-11 20:28:43
    百度地图sdk获取手机屏幕左上右下的坐标经纬度前段时间开发项目中,使用了baiduSdk,有一个是需求是获取手机屏幕的左上右下的经纬度,当时候正也是醉了,没怎么用过baidu地图SDK,然后就自己摸索咯,在此记录一下: ...
  • Android 屏幕适配终极版

    千次阅读 2016-01-08 17:41:22
    本文出自:【张鸿洋的博客】最近看了鸿洋大神写的屏幕适配的问题,正好有点时间,就想说学习记录一下。 主要内容: 一、用法。 二、原理。 一、用法 (1)注册设计图尺寸 1、将autolayout引入。dependencies { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 184,172
精华内容 73,668
关键字:

屏幕使用时间不记录了