安卓项目实战----收集用户信息(一)

前言

大家好!欢迎继续来访我的网站。从今天起,我将在这个专题记录我的一个安卓项目实战,我将在此中分享一些个人经验见解,希望能带给大家一点帮助,这个项目将帮助学习安卓SQLite的使用、反射工程、广播服务等等,甚至一些设计模式相关知识(其实目前我也不太懂,只是在读《设计之禅》中形成一点意识,另外也强烈推荐此书)OK,就这样不多说,开始吧!

项目简介

首先介绍一下整个项目,这个项目是关于信息安全方面的,主要是后台悄悄采集用户的程序使用情况,然后将采集到的数据上传到服务器,以供服务器端分析利用数据。难点在于如何隐蔽在后台采集数据,具体需求如下:

需求
  1. 实时检测程序(包括一部分系统程序和所有的用户程序 )是否在运行,获取程序的运行信息
  2. 获取手机短信并以文件形式储存在SD卡等待上传

>3. 控制手机一些设备的开启关闭,比如蓝牙

项目框架

动工第一步便是搭建整个项目的框架,首先工程大体分为两大类,一个是引擎类,主要包含用于获取程序使用情况和获取短信等的操作类,另一个是服务类,包含广播接收者服务和管理各服务运行的服务。这两个大类都需要抽象出接口,便于后期维护扩展。笔者使用的是Android Studio开发,工程视图如下图所示:
![image](AP151116/1-PS.jpg 工程视图)

获取短信操作类

工程的框架搭好之后,我们先从简单的开始,就是获取短信的操作。这个类的工作分为两步,第一步获取短信,第二步则是保存数据。那么如何获取短信呢?学完安卓基础的都知道,安卓的通讯录、短信都是储存在SQLite数据的,所以获取短信就是简单的查询数据库操作。ok,开始吧。
首先提一下短信收件箱的URI,通过这个URI才可以连接上我们所需要的数据库表单:

    /**
     * 短信收件箱数据库 URI
     */
    private final String SMS_INBOX_URI = "content://sms/inbox";

以下是数据库查询操作:

        Uri smsUri = Uri.parse(SMS_INBOX_URI);
        ContentResolver resolver = mContext.getContentResolver();
        String[] projection = {
  "_id", "address", 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值