[mobilesafe] 13_锁屏&数据库优化及拷贝到系统目录&手机归属地查询及细节&&土司来电归属地显示&动态注册广播接收者&自定义Toast总结

Android 4.0

锁屏&数据库优化及拷贝到系统目录&手机归属地查询及细节&&土司来电归属地显示&动态注册广播接收者&自定义Toast

1、一键锁屏——Administration API的应用
a) 开启设备管理员权限(手动和api-看文档)
b)  一键开启锁屏  DevicePolicyManager    lockNow()
c)  一键卸载  removeActiveAdmin(who)  
d)  判断是否开启了设备管理员isAdminActive(who)
e)  设置锁屏密码   DevicePolicyManager.resetPassword("123", 0);
f)  清除锁屏密码   DevicePolicyManager.resetPassword("", 0);
2、数据库的优化
也就是将一张表重复的部分,拆成多个表单独存储,减少冗余数据的存储(解压缩软件)
3、拷贝数据库到系统目录中
/data/data/包名/files/   getFilesDir()
4、手机号码固话归属地查询-离线数据库,小米数据库
5、号码归属地查询细节-动画效果
a) 输入框为空时,查询,窗口抖动-(系统API Demos有源码,参考)
b) 手机抖动 Vibrator
c) 用户输入号码,光标离开文本框,自动查询出结果-文本框的监听事件
et_phone_number.addTextChangedListener(new TextWatcher() {}
6、吐丝显示来电归属地
设置界面中配置,
如何保存是否服务在运行?
a) 不能用SharedPreferences保存
b) 系统检测服务是否运行 activityManager.getRunningServices(100);
c) 检测要放在onStart()方法中,不能放在onCreate(),否则有bug,后退和Home键对于Activity生命周期不同
7、动态在代码上注册广播接收者&以及和清单文件中注册的区别需求:外拨电话时,也显示电话号码归属地
解决1:在外拨电话的广播接收者中实现归属地查询
缺点:不管有没有开启归属地查询功能,该代码都是会执行
解决2:在代码中,动态的注册该外拨电话的广播接收者
可以动态的控制外拨电话广播接收者的有效期。
清单文件配置和代码中配置区别:
8、更改归属地提示框样式-参考金山卫士
9、更改归属地提示框显示位置-参考金山卫士
触摸事件和点击事件的区别(面试):
触摸事件:按下→滑动→离开一瞬间
点击事件:一组动作的组合,在当前控件下:按下→等待时间→在控件上离开
游戏:

对点击事件的理解