开发日记——手机安全卫士 Day01 2016-7-20 完成主界面和设置密码功能
来源:互联网 发布:淘宝价格怎么设置打折 编辑:程序博客网 时间:2024/05/16 05:33
Day01 2016-7-20 完成主界面和设置密码功能
主界面采用线性布局,将功能分为手机防盗、通讯卫士、软件管家和手机杀毒四类。分别对这四类进行点击事件监听。
当点击手机防盗时,检查是否设置过密码,没有设置弹出设置密码对话框。已设置则弹出输入密码对话框。自定义对话框样式,使用shape标签将对话框背景设为圆角。
密码通过MD5加密后,通过SharedPreferences存储到文件中。使用MessageDigest.getInstance("md5")拿到一个MD5转换器,将输入的字符串转成字节数组,通过MD5转换器的digest方法将字节数组转换得到结果,再将结果转为16进制。
public class MD5Utils { public static String encode(String text){ try{ MessageDigest digest = MessageDigest.getInstance("md5");//拿到一个MD5转换器 byte[] result =digest.digest(text.getBytes());//输入的字符串转成字节数组,字节数组转换得到结果 StringBuilder sb = new StringBuilder();//转成16进制 for(byte b:result){ int number=b&0xff;//高24位清零 String hex = Integer.toHexString(number); if(hex.length()==1){//不足2位在前面加0补位 sb.append("0"+hex); }else{ sb.append(hex); } } return sb.toString(); }catch(NoSuchAlgorithmException e){ e.printStackTrace(); return""; } }}
监听退出按键,2秒钟内连按两次才会退出程序,以防止误点击退出
@Overridepublic boolean onKeyDown(int keyCode,KeyEvent event){ if(keyCode==KeyEvent.KEYCODE_BACK){//如果是按退出键 if((System.currentTimeMillis()-mExitTime)<2000){//如果第二次按退出,且与第一次按相隔两秒以内 System.exit(0);//退出程序 }else{ Toast.makeText(this,"再按一次退出程序",Toast.LENGTH_SHORT).show();//第一次按,用Toast弹出提醒,需要按两次 mExitTime=System.currentTimeMillis();//记录当前时间 } return true; } return super.onKeyDown(keyCode,event);}
0 0
- 开发日记——手机安全卫士 Day01 2016-7-20 完成主界面和设置密码功能
- 开发日记——手机安全卫士 Day02 2016-7-21 完成导航页面和切换功能
- 开发日记——手机安全卫士 Day08 2016-7-27 完成软件管家功能
- 开发日记——手机安全卫士 Day09 2016-7-28 完成查杀病毒功能
- 开发日记——手机安全卫士 Day06 2016-7-25 修改部分界面,增加了联系人搜索功能,完成部分黑名单功能
- 开发日记——手机安全卫士 Day04 2016-7-23 实现SIM换卡提醒功能
- 开发日记——手机安全卫士 Day07 2016-7-26 电话短信拦截功能
- 开发日记——手机安全卫士 Day03 2016-7-22 实现手机SIM卡绑定功能,添加安全号码功能
- 开发日记——手机安全卫士 Day05 2016-7-24 实现短信远程控制报警、定位功能
- 手机安全卫士开发系列(2)——splash界面
- 安全卫士6---导航设置页面的完成——界面的交替以及动画的完成
- 手机安全卫士开发系列(1)——功能列表
- 手机安全卫士开发系列(6)——程序主界面
- Android项目:手机安全卫士(7)—— 手机防盗功能
- Android项目:手机安全卫士(3)—— 主界面布局
- [仿南航app开发日记2]主界面完成
- 手机安全卫士开发系列(5)——自动更新
- 手机安全卫士开发系列(7)——知识点整理(1)
- AndroidStudio检测不到模拟器的解决方案(百试不爽)
- 链表分析笔记
- RecyclerView实现不同布局,Model实体类写法
- 结合开发文档分析volley(三)
- 第8章 Linux磁盘与文件系统管理
- 开发日记——手机安全卫士 Day01 2016-7-20 完成主界面和设置密码功能
- HDU2553 N皇后问题
- Android之多线程下载及断点续传
- mysql之explain
- cublas中执行矩阵乘法运算的函数 首先要注意的是cublas使用的是以列为主的存储方式,和c/c++中的以行为主的方式是不一样的。处理方法可参考下面的注释代码
- uva 10943 How do you add?
- Android HTML 中添加空格
- JavaSE基础(六)
- caffe与Python接口的配置(VC2013 Windows CUDA7.5 Python2.7.12)