手机安全卫士05

1,获取系统联系人信息

  1. 了解 系统的 ContactsProvider 内容提供者应用
    1. com.android.providers.contacts 包
    2. contact2.db 数据库
    3. 表 raw_contacts(contact_id,display_name)
      contact_id 3 4
      保存每个联系人的id ,每一个联系人对应 一个contact_id
    4. 表 data(mimetype_id,raw_contact_id,)
      保存联系人的数据,通过raw_contact_id 来识别这个数据属于哪个联系人,通过mimetype_id 识别该数据的类型
    5. 表 mimeTypes : 表示数据的类型
    6. 视图 :view_data : 把data表和mimeTypes表整合
  2. 通过内容提供者获取联系人数据
    • 认证、权限: com.android.contacts或者 contacts(早期版本的认证)
    • 访问raw_contacts表的uri: content://com.android.contacts/raw_contacts
    • 访问view_data表的uri:content://com.android.contacts/data
    • 访问系统的联系人信息需要权限
      • android.permission.READ_CONTACTS
      • android.permission.WRITE_CONTACTS
  3. 展示及获取选择的联系人
    1. 通过ListView展示查询到的系统联系人信息
      listview的详解
      见: http://www.cnblogs.com/devinzhang/archive/2012/01/20/2328334.html
      采用baseAdapter
    2. 当选择某个联系人,应该回调数据给安全号码编辑框

,2、手机防盗功能实现

 手机定位 、 报警音乐 、 远程擦除数据、 远程锁屏

1. 如何接受指令
采用消息推送的方式 :
- 采用Socket 的形式来推送消息
Socket它是长连接的协议,而Http协议是短连接的协议,socket通信有可能被防火墙连接(连接但是没消息-不活跃连接 会被认为占用内存会被防火墙消化)

       解决方法: 采取心跳机制方式来解决(每隔一段时间发送空包或者几字节的信息,会耗流量,但是会保持活跃状态)
      不足: 必须要有联互联网


    - 通过移动运营商的短信方式实现推送消息 (不能欠费、要有移动信号,扣费)

(本项目就是采用这种)

    - 采用第三方应用框架实现推送
      1. 即时通信框架 :xmpp 
      2. 免费的推送软件 : 极光推送 
  1. 采用短信发送指令

    1. 定义一个订阅短信的广播接收器
      步骤:
      1. 继承BroacastReceive ,重写onReceive(),并且通过Intent获取短信
      2. 注册接收器,并且订阅 短信广播的事件
        android.provider.Telephony.SMS_RECEIVED
      3. 设置优先级 android:priority=”1000”
      4. 截断广播的传递
        abortBroadcast();
        5.接受短信需要权限 :android.permission.RECEIVE_SMS
    2. 手机定位功能
      1. 手机定位方式(百度地图)
        • GPS定位 、北斗导航
        • wifi定位 : 网络定位(ip地址) ,不是很精确
        • 基站定位 (华为、中兴)
      2. Android 实现的位置定位
        LocationManager :
        // 获取位置信息 需要权限
    3. 播放报警音乐功能
    4. 一键锁屏功能

    5. 远程擦除数据功能

你可能感兴趣的:(android)