Android手势密码设置与校验源码实现
49 浏览量
更新于2024-08-30
收藏 73KB PDF 举报
该资源提供了一段关于在Android应用中实现手势密码设置和校验功能的代码示例。用户可以通过手势来设定和验证密码,增强应用的安全性。
在Android开发中,手势密码是一种常见的安全机制,它允许用户通过在屏幕上绘制特定的图形(通常是一系列连续的点连接)来解锁或验证身份。以下是如何在代码中实现这一功能的详细步骤:
首先,我们需要一个开关按钮(toggleMore)来触发手势密码的设置。当用户勾选这个开关时,会触发`onCheckedChangeListener`回调:
```java
toggleMore.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// 处理手势密码开启的逻辑
}
}
});
```
在回调中,检查开关是否被选中。如果选中,表示用户希望设置手势密码。这时,我们首先从SharedPreferences中获取已经设置的手势密码(inputCode)。SharedPreferences是Android用于存储轻量级数据(如设置)的一个简单接口:
```java
String inputCode = sp.getString("inputCode", "");
```
如果`inputCode`为空,意味着用户尚未设置手势密码。因此,我们可以弹出一个对话框询问用户是否现在设置:
```java
if (TextUtils.isEmpty(inputCode)) {
new AlertDialog.Builder(MoreFragment.this.getActivity())
.setTitle("设置手势密码")
.setMessage("是否现在设置手势密码")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 提示用户已设置手势密码
UIUtils.toast("现在设置手势密码", false);
// 将开关状态保存到SharedPreferences
sp.edit().putBoolean("isOpen", true).commit();
// 可以选择在这里直接将开关设置为选中状态
// toggleMore.setChecked(true);
// 跳转到GestureEditActivity进行手势设置
((BaseActivity) MoreFragment.this.getActivity()).goToActivity(GestureEditActivity.class, null);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 取消设置,不做任何处理
}
})
.show();
}
```
在用户点击“确定”后,我们提示用户已经设置了手势密码,并将开关状态保存到SharedPreferences。接着,我们通过`goToActivity`方法启动一个新的Activity(GestureEditActivity),在这个Activity中,用户可以实际绘制并保存手势密码。
在GestureEditActivity中,用户绘制手势后,我们需要将手势路径转换成可存储的数据形式(例如,点的序列),然后存入SharedPreferences。在后续的验证过程中,我们会读取这个数据,比较用户新绘制的手势与已保存的手势是否一致,以此来完成校验。
手势密码的校验通常涉及比较两个手势路径的相似度,这可以通过计算它们之间的最小距离或其他算法实现。这里并未给出具体的校验代码,但大致流程是:在GestureEditActivity中,用户完成绘制后,调用一个验证方法,该方法会与SharedPreferences中的预设手势进行比较,若匹配成功则解锁,否则提示用户重试。
总结来说,这个代码示例展示了如何在Android应用中通过SharedPreferences管理和验证用户的手势密码。手势密码的设置和校验是安全功能的重要组成部分,它可以提高应用的安全性和用户体验。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-08-27 上传
2021-01-05 上传
2015-11-19 上传
2021-04-04 上传
2020-09-01 上传
点击了解资源详情
weixin_38724333
- 粉丝: 5
- 资源: 955
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查