。。。。。。。。。。。。书接上文

 

我们可以在数据库表中找到对应的数据,通过DDMS导出数据库:

Android源码分析(三):Mms模块总结(二)_android短信总结_02

Android源码分析(三):Mms模块总结(二)_android短信总结_03

 

3草稿

 

 

Android源码分析(三):Mms模块总结(二)_android短信_04

 

对应的文件为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);

 

 

Android源码分析(三):Mms模块总结(二)_android短信总结_05

 

其他操作

 1短信搜索

Android源码分析(三):Mms模块总结(二)_android彩信_06

 2写短信

Android源码分析(三):Mms模块总结(二)_android彩信_07

可以对收件人进行namenumber的搜索,数据库的查询在providers/ContactsProvider中的ContactsProvider2.java中:

queryLocal{

case PHONES_FILTER:

}

输入短信的字符超过一行会有提示当前的页数和当前页剩余的可输入字符数,对应的控件在gnInitResourceRefs中声明,布局文件:gn_compose_message_activity.xml,默认为不显示此控件,当输入行数大于1行时才显示出来。

当输入字符的页面总数大于getSmsToMmsTextThreshold()方法中设置的默认值时,短信回自动转化为彩信。

 

 3导入导出短信

Android源码分析(三):Mms模块总结(二)_android彩信_08

通过option菜单中点击进入导入导出短信应用,这个activity也要通过TabActivity.java中的onOptionsItemSelected()来触发:

case R.id.gn_action_in_out:

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

    startActivity(impExpIntent);

进入ImportExportSmsActivity这个类中,在这个类中主要是处理导入和导出2click事件:

onClick(){

if (view.equals(mExportButton)) {

    .

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

.

}

}

 

短信设置

Android源码分析(三):Mms模块总结(二)_android彩信_09