XXX项目总结

本文介绍了一种专为儿童设计的手机管理模式,包括电话监控、时间管控、护眼模式等功能,使用TelephonyManager监听电话状态,通过AlarmManager实现使用时间限制,以及音乐和视频的播放框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,项目背景

专门给小孩做一个玩手机的模式或者环境,可以看视频,听音乐,电话防乱接,使用时间管控等

二,功能模块

2.1 家长中心

家长中心主要负责:电话监控/时间监控/护眼模式/密码/网络等相关功能

2.1.1 来电监听

使用TelephonyManager相关接口监听电话的状态,然后根据来电状态显示拦截或提示动画。

TelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);

//通话中                
case TelephonyManager.CALL_STATE_OFFHOOK:
 //响铃
 case TelephonyManager.CALL_STATE_RINGING:
//挂断
 case TelephonyManager.CALL_STATE_IDLE:

拦截activity:当来电时,会弹出验证页面让家长验证密码后,再接听电话。

弹出时机:来电页面到前台后,即对用户可见的时候,弹出拦截activity.(之前尝试在监听到响铃的时候弹出(TelephonyManager.CALL_STATE_RINGING),但是这种情况下会出现拦截activity过早启动,导致拦截activity出现在来电页面下面)。目前从系统中找到了监听activity处于前后台的接口。可以监听到某个包下的activity前后台的变化。这个接口是从系统层面hook出来的接口。使用接口的过程中也发现了拦截activity弹出过早的情况。所以监听到InCallActivity到前台后,延迟200ms启动拦截activity。

2.1.2 时间管控

限制孩子使用手机时长

计时逻辑:如何计时,刚开始考虑了Handler/CountDownTimer/Timer/AlarmManager等计时机制。最后使用AlarmManager

来作为计时器,把计时交给系统。其它计时器也可以实现,使用AlarmManager会比较简单。

当前具体实现逻辑是:把时间节点和该节点所做的事前对应起来,使用默认排序的TreeMap<Long, Integer> timeFences = new TreeMap<Long, Integer>();将时间节点和对应事物存储起来。然后启动倒计时。当时间围栏到来时,做相关动作/

拦截activity:当使用时间到来后,会弹出验证页面让家长验证密码后,再使用。

2.2 音乐

负责音乐播放,使用的是android原生的MediaPlayer/MediaSession框架

2.3 视频

采用的是跟XX视频合作的模式

三,技术栈

1.网络访问

采用的retrofit2+Okhttp3

几个关键的技术点:

1.如何使用缓存提高加载速度,减少服务器负荷,没有网络的情况下读取缓存数据

2.Okhttp拦截器Interceptor

参考文章:

Cache:

https://blog.youkuaiyun.com/qqyanjiang/article/details/51316116

https://cnbin.github.io/blog/2016/02/20/http-qing-qiu-,-xiang-ying-,-huan-cun/

retrofit2源码解析:

https://www.jianshu.com/p/0c055ad46b6c

2.图片处理

3.音乐

4.视频

5.XX空间的创建/切换/删除

四,其他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值