最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實例詳解Android 獲取短信會話列表

 更新時間:2015年12月23日 14:24:10   作者:NCUT藍色理想  
本文通過實例詳解android獲取短信會話列表的全部內容,涉及到android獲取短信列表的相關知識,對android會話列表相關知識感興趣的朋友一起學習吧

Android中的短信并沒有正式的content provider可用,在官方文檔中沒有提供定義。不過依然可以自己定義好URI,然后查詢出短信內容。例如conetent://sms則是所有短信所在的path。

   要將短信按會話分類,原先我是查詢出所有短信后,然后再按照thread_id分類。系統(tǒng)自帶的短信程序包含一個會話顯示界面,每個條目包含:聯(lián)系人、短信數量、第一條短信等內容。當我的程序處理的短信較多時,一次查詢出所有的短信就變得很慢。(如果再加上為每個會話查詢聯(lián)系人信息,則會更慢)

  看了系統(tǒng)短信的代碼,發(fā)現它可以只查詢出會話的信息,而不用查詢出所有短信內容。因為部分代碼沒找到,一直不知道它是怎么做到的。看了telphony provider的代碼后,才知曉一二。

  實際上,短信數據庫中(mmssms.db)并沒有一個表存儲會話信息的。系統(tǒng)提供的content provider中,實際上是支持直接查詢會話信息的。只不過,其實現方式,不是通過一個現成的表,而是通過SQL語句,從多個表里取數據完成的。關于這個實現方式,在這個帖子中也有所提及。

  實現方式就不深究了,畢竟我對SQL查詢不太熟。放出直接的使用方法:

  獲取會話信息的URI

  Java代碼

public static final Uri MMSSMS_FULL_CONVERSATION_URI = Uri.parse("content://mms-sms/conversations");
  public static final Uri CONVERSATION_URI = MMSSMS_FULL_CONVERSATION_URI.buildUpon().
  appendQueryParameter("simple", "true").build();
  public static final Uri MMSSMS_FULL_CONVERSATION_URI = Uri.parse("content://mms-sms/conversations");
  public static final Uri CONVERSATION_URI = MMSSMS_FULL_CONVERSATION_URI.buildUpon().
  appendQueryParameter("simple", "true").build();

  通過指定simple=true,則可以獲取出一個大概的會話數據,包含以下列:

  Java代碼

private static final int ID = 0;
  private static final int DATE = 1;
  private static final int MESSAGE_COUNT = 2;
  private static final int RECIPIENT_IDS = 3;
  private static final int SNIPPET = 4;
  private static final int SNIPPET_CS = 5;
  private static final int READ = 6;
  private static final int TYPE = 7; 
  private static final int ERROR = 8;
  private static final int HAS_ATTACHMENT = 9;

  列名則為:

  Java代碼

 private static final String[] ALL_THREADS_PROJECTION = {
  "_id", "date", "message_count", "recipient_ids",
  "snippet", "snippet_cs", "read", "error", "has_attachment"
  };

其中:

  1、message_count為該會話的消息數量;

  2、recipient_ids為聯(lián)系人ID,這個ID不是聯(lián)系人表中的_id,而是指向表 canonical_addresses 里的id,canonical_addresses這個表同樣位于mmssms.db,它映射了recipient_ids到一個電話號碼,也就是說,最終獲取聯(lián)系人信息,還是得通過電話號碼;

   3、snippet為最后收到/發(fā)送的短信;

  每個數據的類型嘛,大致為:

  Java代碼

long id = cursor.getLong(ID);
  long date = cursor.getLong(DATE);
  long msgCount = cursor.getLong(MESSAGE_COUNT);
  String recipIDs = cursor.getString(RECIPIENT_IDS);
  String snippet = cursor.getString(SNIPPET);
  long snippetCS = cursor.getLong(SNIPPET_CS);
  long read = cursor.getLong(READ);
  long type = cursor.getLong(TYPE);
  long error = cursor.getLong(ERROR);
  long hasAttach = cursor.getLong(HAS_ATTACHMENT);
  long id = cursor.getLong(ID);
  long date = cursor.getLong(DATE);
  long msgCount = cursor.getLong(MESSAGE_COUNT);
  String recipIDs = cursor.getString(RECIPIENT_IDS);
  String snippet = cursor.getString(SNIPPET);
  long snippetCS = cursor.getLong(SNIPPET_CS);
  long read = cursor.getLong(READ);
  long type = cursor.getLong(TYPE);
  long error = cursor.getLong(ERROR);
  long hasAttach = cursor.getLong(HAS_ATTACHMENT);

以上內容是小編給大家介紹的Android 獲取短信會話列表的全部敘述,希望大家喜歡。

相關文章

  • Android基于SoftReference緩存圖片的方法

    Android基于SoftReference緩存圖片的方法

    這篇文章主要介紹了Android基于SoftReference緩存圖片的方法,較為詳細的分析說明了SoftReference緩存圖片的原理并結合實例分析了具體的緩存操作實現技巧,需要的朋友可以參考下
    2016-08-08
  • Android實現全局右滑返回

    Android實現全局右滑返回

    這篇文章主要為大家詳細介紹了Android實現全局右滑返回,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Jsoup 抓取頁面的數據實例詳解

    Jsoup 抓取頁面的數據實例詳解

    這篇文章主要介紹了Jsoup 抓取頁面的數據實例詳解的相關資料,需要的朋友可以參考下
    2016-12-12
  • Android實現模仿UCweb菜單效果的方法

    Android實現模仿UCweb菜單效果的方法

    這篇文章主要介紹了Android實現模仿UCweb菜單效果的方法,較為詳細的分析了Android模仿UCweb菜單效果的頁面布局及功能實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Flutter桌面開發(fā)windows插件開發(fā)

    Flutter桌面開發(fā)windows插件開發(fā)

    這篇文章主要為大家介紹了Flutter桌面開發(fā)windows插件開發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Android UI控件之ImageSwitcher實現圖片切換效果

    Android UI控件之ImageSwitcher實現圖片切換效果

    這篇文章主要為大家詳細介紹了Android UI控件之ImageSwitcher實現圖片切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android7.0以上Uri轉路徑的方法實現(已驗證)

    Android7.0以上Uri轉路徑的方法實現(已驗證)

    這篇文章主要介紹了Android7.0以上Uri轉路徑的方法實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • Android如何創(chuàng)建桌面快捷方式

    Android如何創(chuàng)建桌面快捷方式

    這篇文章主要為大家詳細介紹了Android創(chuàng)建桌面快捷方式的方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android用文件存儲數據的方法

    Android用文件存儲數據的方法

    這篇文章主要為大家詳細介紹了Android用文件存儲數據的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android編程實現音量按鈕添加監(jiān)聽事件的方法

    Android編程實現音量按鈕添加監(jiān)聽事件的方法

    這篇文章主要介紹了Android編程實現音量按鈕添加監(jiān)聽事件的方法,結合實例形式分析了Android事件監(jiān)聽實現音量控制的相關操作技巧,需要的朋友可以參考下
    2017-06-06

最新評論

林西县| 手机| 肥东县| 山东省| 曲周县| 金寨县| 汕尾市| 永昌县| 阜城县| 江山市| 阳信县| 濮阳市| 东平县| 瑞金市| 茌平县| 靖江市| 含山县| 芦溪县| 阿拉善盟| 绥宁县| 天等县| 安康市| 荃湾区| 昆明市| 濮阳县| 泸水县| 阳东县| 固原市| 浏阳市| 淮北市| 双城市| 永德县| 德兴市| 吐鲁番市| 红原县| 齐齐哈尔市| 手游| 恩施市| 呼和浩特市| 松桃| 祁阳县|