开发日记——手机安全卫士 Day01 2016-7-20 完成主界面和设置密码功能

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秒钟内连按两次才会退出程序,以防止误点击退出
@Override
public 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);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值