毕业设计_Android短信查询及加密系统_会话加密

2024-06-14 02:18

本文主要是介绍毕业设计_Android短信查询及加密系统_会话加密,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    下面是我的毕业设计,是一个Android的短信查询系统,系统支持根据短信号码、短信内容、短信发生时间进行多条件的短信查询。支持检索条件的与运算和或运算。扩展了会话加密、转发/存短信、收/发短信等功能。需要强调的是本人菜鸟,东西做的不好,路过的大侠见了可不要喷我,谢谢!下面是程序的运行截图:

                               

图1.程序欢迎动画

 

     这里需要做下说明,因为查询系统短信是通过ContentResolver得到Cursor来实现的,正如我上次说到的那样,我无法使用Cursor进行短信数据的多条件查询,又不能得到短信数据库的SQLiteDatabase的引用,所以在做多条件查询时,我是先将要查询的数据备份到我的应用程序中,再得到相应的SQLiteDatabase对象,从而实现多条件查询功能。那么这里的查询数据的准备就是需要考虑的问题,这里设置一个欢迎动画主要就是为了准备查询数据的。

                               

                                

 图2.会话列表界面

 

        这里用户可以通过在某个会话列表项上通过长按弹出操作选项列表,特别的是加密会话。用户可以为任意一个会话指定一个标识符及对应的密码。被加密的会话需要输入正确的密码才能进行访问。

                              

 图3.会话加密过程

       

       上图为一个会话列表项设置了一个标识符Tom及一个密码ttt来实现了一个会话的加密功能。这里主要是通过新建自己的加密数据库,数据库中包含字段:标示符(主键)、会话id(即sms数据表中的thread_id字段)、密码、是否可读、是否上锁。所以会话列表(图2)初始化的过程中首先从短信数据表和联系人数据表中读取到数据,再将得到的数据与加密数据库中的数据比较,从而实现会话列表的显示过程。其实这里,通过Eclipse的File Explorer观察发现在android的mmssms数据库中的threads数据表中是包含会话列表的所需显示信息的(最后一次通信内容、最后一个通信时间、thread_id、包含的短信条数),不过,经过却始终找不到该数据表的引用URI,所以,这能一条条的来检索短信记录,从而得到会话列表中的数据。这里,就是想问一下,哪位大侠知道怎么引用threads中的数据,知道的告诉我一下,这里先谢了!

        这里需要注意的是,有加密就必须要有解密。出于用户数据隐私的考虑,会话数据有三种阅读状态,分别是未加密的正常短信、已加密但却解读的会话、已加密且未解读的短信。这里的解读表示在用户操作本软件的时间里,数据是可读的,一旦程序失去了用户输入焦点,解读的会话内容会自动重新上锁。而解密则表示彻底解锁该会话,即该会话内容会变得和正常会话一样。

                              

 图 4.解读/密过程

 

        如上图所示,解读/密过程需要注意的就是什么时候进行会话解读验证,什么时候进行会话的重新上锁。这里程序是通过设定一个全局变量IS_NEED_LOCK(true表示需要上锁,false表示不需要)来标记是否需要上锁显示。在活动的onStop方法中将上锁标记置true,即表示需要上锁的,在活动的onResume方法中根据上锁标记提交操作到加密数据库。

        这里需要注意的是,因为使用Activity的活动周期方法来实现解密过程。所以这里可能有一种情况,如:从某个具体的会话界面跳转到会话列表,此时会调用会话列表活动的onResume,但此时我们并不需要为会话列表重新上锁。所以,可能使用startActivityForResult方法来实现活动的跳转,并在其中传入标记,来区分什么时候需要为会话重新上锁,什么时候不需要。

        好了,加密过程就这样先。介绍的可能有些粗糙,但实现过程已经大概介绍到了。写的不好,望路过的大侠能够见谅,毕竟我只是一只菜鸟。

这篇关于毕业设计_Android短信查询及加密系统_会话加密的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059091

相关文章

房产证 不动产查询

陕西政务服务网(便民服务)陕西政务服务网(手机版?更直观)不动产权证书|不动产登记证明(电子证照)商品房合同备案查询权利人查询

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

android 带与不带logo的二维码生成

该代码基于ZXing项目,这个网上能下载得到。 定义的控件以及属性: public static final int SCAN_CODE = 1;private ImageView iv;private EditText et;private Button qr_btn,add_logo;private Bitmap logo,bitmap,bmp; //logo图标private st

Android多线程下载见解

通过for循环开启N个线程,这是多线程,但每次循环都new一个线程肯定很耗内存的。那可以改用线程池来。 就以我个人对多线程下载的理解是开启一个线程后: 1.通过HttpUrlConnection对象获取要下载文件的总长度 2.通过RandomAccessFile流对象在本地创建一个跟远程文件长度一样大小的空文件。 3.通过文件总长度/线程个数=得到每个线程大概要下载的量(线程块大小)。

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了