`

Monitor MMS

 
阅读更多

  1. Monitor incoming mms event
  2. Parse MMS
    The mms/sms are stored in SQLite file
    /data/data/com.android.providers.telephony/databases/mmssms.db
    /data/data/com.android.providers.telephony/app_parts/*
    mmssms.db srotes the sms and mms information, and the files under app_parts stores the files attached in MMS.
    Other application has no permission to access that database file, we only can read mms/sms throung content provider.

    Sample code:
    CursorcurPdu =getContentResolver().query(Uri.parse("content://mms"), null,null,null,null);
    int id = curPdu.getInt(curPdu.getColumnIndex("_id"));
    int thread_id = curPdu.getInt(curPdu.getColumnIndex("thread_id"));
    String subject = curPdu.getString(curPdu.getColumnIndex("sub");
    int date = curPdu.getInt(curPdu.getColumnIndex("date"));

    //Delete mms
    getContentResolver().delete(Uri.parse("content://mms/" + Integer.toString(id)));

    String selectionAddr = new String("msg_id='" + Integer.toString(id) + "'");
    Uri uriAddr = Uri.parse("content://mms/" + curPdu.getString(curPdu.getColumnIndex("_id")) + "/addr"); //use provider 'content://mms/#/addr' to get address
    Cursor curAddr = getContentResolver().query(Uri.parse(uriAddr, null, selectionAddr, null, null);
    String contact_id = curAddr.getString(curAddr.getColumnIndex("contact_id"));
    String address = curAddr.getString(curAddr.getColumnIndex("address"));

    String selectionPart = new String("mid='" + Integer.toString(id) + "'");
    Cursor curPart = getContentResolver().query(Uri.parse("content://mms/part"), null, selectionPart, null, null);
    /*
    //You can also use following code
    Cursor curPart = getContentResolver().query(Uri.parse("content://mms/" + Integer.toString(id) + "/part"), null,null , null, null);
    */
    while(curPart.moveToNext())
    {
    String type = curPart.getString(curPart.getColumnIndex("ct")); //content type
    String attachmentpath = curPart.getString(curPart.getColumnIndex("_data"));
    String cid = curPart.getString(curPart.getColumnIndex("cid"));

    if (cid.euqals("<text_0>") //Current row stores MMS body
    {
    String body = curPart.getString(curPart.getColumnIndex("text"));
    }
    else if (!attachmentpath.euqals(null)) //Current row stores MMS attachment, following code is used to read the attachment file
    {
    int _partID = curPart.getInt(curPart.getColumnIndex("_id"));
    String partID = String.valueOf(_partID);
    Uri partURI = Uri.parse("content://mms/part/" + partID);

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); //This is attachment
    InputStream is = null;

    try
    {
    is = getContentResolver().openInputStream(partURI);
    byte[] buffer = new byte[256];
    int len = is.read(buffer);
    while (len >= 0)
    {
    baos.write(buffer, 0, len);
    len = is.read(buffer);
    }
    }
    catch (IOException e)
    {
    }
    finally
    {
    if (is != null)
    {
    try
    {
    is.close();
    } catch (IOException e) {}
    }
    }
    }
    }

    if (curPart.moveToFirst())
    do
    {

    }

    Declare permission
    <uses-permission android:name="android.permission.READ_SMS" />
  3. Others
    1. About what tables are created in mmssms.db
      1. adb pull /data/data/com.google.providers.telephony/databases/mmssms.db .
      2. strings mmssms.db > tmp.txt
      3. vi tmp.txt, and search 'CREATE TABLE'
    2. All avaliable native providers on Android
      http://dislab.hufs.ac.kr/wiki/Android/Native_Providers
    3. ...
  4. ...

分享到:
评论

相关推荐

    power monitor驱动文件

    power monitor驱动文件, power monitor用于测功耗,电流大等问题。power monitor驱动文件, power monitor用于测功耗,电流大等问题

    Process Monitor中文手册.CHM

    Process Monitor 是windows下高级实时监听工具,用于监视文件系统、注册表、进程和线程的活动。它兼并了两个Sysinternals实用工具Filemon和Regmon的特点,并且增加了一系列的扩展包括丰富而无干扰的过滤全面的事件...

    ProcessMonitor.zip

    C:\Downloads\ProcessMonitor.C:\Downloads\ProcessMonitor.zipzip

    monitor monitor monitor 很好用的驱动加载工具

    monitor monitor monitor 很好用的驱动加载工具

    Process Monitor v3.53.zip

    Process Monitor是Windows的高级监视工具,可显示实时文件系统,注册表和进程/线程活动。它结合了两个旧的Sysinternals实用程序Filemon和 Regmon的功能,并添加了广泛的增强功能列表,包括丰富的和非破坏性的过滤,...

    hostmonitor中文教程中文手册.pdf

    hostmonitor是一个免费的非常强大的网络监控软件,可用于数据中心和机房的网络运维,此次是hostmonitor的中文教程中文手册(亲测可用)

    log_monitor日志监控

    (1) 二进制包:下载工具包 log_monitor.tar.gz,并解压 (2) 源码编译:make 之后进行参数配置,可以拷贝现有的,各个参数说明如下: log_file=/data/nginx_logs/access.log log_reg=\[(.*) \+0800\] time_format=%d/%b/%Y:...

    网管软件 host monitor 破解版+注册码

    网管软件 host monitor 破解版+注册码

    hostmonitor说明书【中文版】

    hostmonitor说明书【中文版】:376页 官方英文版翻译而来。

    api-monitor

    api-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitorapi-monitor

    dubbo-monitor-simple

    dubbo-monitor-simple

    TI Sensor Monitor

    TI Sensor Monitor

    Serial Monitor V6.02 破解版

    一个很棒的串口调试工具,HHD出品,Serial Monitor 6.02,原来有个Free版的,容易使电脑死机,所以换了这个V6.02最新版,我将使用天数改成了固定的,永不过期了。 不求完美,但求能用~

    Process Monitor 1.35 汉化版

    Process Monitor 1.35 汉化版 这是一个高级的 Windows 系统和应用程序监视工具,由优秀的 Sysinternals 开发,并且目前已并入微软旗下,可靠性自不用说。 此版本的 Process Monitor 增加了多项重要增强功能,包括...

    VESA Monitor Control Command Set Standard

    VESA monitor control command set standard Version2 Revision2 January 19, 2009

    Serial Port Monitor 4.1.2.293 破解版

    Serial Port Monitor 4.1.2.293 破解版 主要用来SPSniff串口,可以监听其他程序与串口的通信内容。 官方网站 http://www.eltima.com/products/serial-port-monitor/ 请支持正版

    Host Monitor v9.46 Enterprise最新版带注册机

    Host Monitor v9.46 Enterprise带注册机。亲测可用:) 这是一款网络监视工具。只需建立一个工作或者测试任务列表,它就可以监视TCP服务,ping某个主机,测试某个URL,检查硬盘剩余空间,检查网站文件完整性,测试...

    Advanced Host Monitor 8.86

    Advanced Host Monitor 8.86 Advanced Host Monitor 8.86 Advanced Host Monitor 8.86

    TrafficMonitor 13代cpu可显示温度版本

    TrafficMonitor 13代cpu可显示温度版本

    HostMonitor

    有关Host Monitor的详细使用及说明文档,供有网络监测需要的参考

Global site tag (gtag.js) - Google Analytics