天天看點

Android源碼分析(三):Mms子產品總結(二)

我們可以在資料庫表中找到對應的資料,通過DDMS導出資料庫:

<a href="http://blog.51cto.com/attachment/201212/200031604.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201212/200130458.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201212/200308752.jpg" target="_blank"></a>

對應的檔案為DraftFragment.java。這裡要顯示草稿的資訊清單首先要查詢資料庫,在onCreate()方法中會聲明一個資料庫操作的對象:

onCreate(){

      mQueryHandler = new QueryHandler(getActivity());

}

,并在onViewCreated()中添加一個對資料庫的監聽并執行查詢:

onViewCreated(){

     DraftCache.getInstance().addOnDraftChangedListener(this);

          startQuery();

這些僅在初始化時才執行,退出Mms應用時也會remove該監聽。

從startQuery()中可以找到對草稿中内容的查詢:

queryHandler.startQuery(queryToken, null, sAllThreadsUri, ALL_THREADS_PROJECTION,

"sim_id=-1 AND message_count=0", null, Conversations.DEFAULT_SORT_ORDER);

<a href="http://blog.51cto.com/attachment/201212/200433820.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201212/200734633.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201212/200919827.jpg" target="_blank"></a>

可以對收件人進行name和number的搜尋,資料庫的查詢在providers/ContactsProvider中的ContactsProvider2.java中:

queryLocal{

case PHONES_FILTER:

輸入短信的字元超過一行會有提示目前的頁數和目前頁剩餘的可輸入字元數,對應的控件在gnInitResourceRefs中聲明,布局檔案:gn_compose_message_activity.xml,預設為不顯示此控件,當輸入行數大于1行時才顯示出來。

當輸入字元的頁面總數大于getSmsToMmsTextThreshold()方法中設定的預設值時,短信回自動轉化為彩信。

<a href="http://blog.51cto.com/attachment/201212/201106714.jpg" target="_blank"></a>

通過option菜單中點選進入導入導出短信應用,這個activity也要通過TabActivity.java中的onOptionsItemSelected()來觸發:

case R.id.gn_action_in_out:

Intent impExpIntent = new Intent("android.intent.action.ImportExportSmsActivity");

    startActivity(impExpIntent);

進入ImportExportSmsActivity這個類中,在這個類中主要是處理導入和導出2個click事件:

onClick(){

if (view.equals(mExportButton)) {

    ….

}else if (view.equals(mImportButton)) {

….

<a href="http://blog.51cto.com/attachment/201212/201358268.jpg" target="_blank"></a>

本文轉自 646676684 51CTO部落格,原文連結:http://blog.51cto.com/2402766/1103398,如需轉載請自行聯系原作者