开发日记——手机安全卫士 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
原创粉丝点击