。。。。。。。。。。。。书接上文
我们可以在数据库表中找到对应的数据,通过DDMS导出数据库:
对应的文件为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);
可以对收件人进行name和number的搜索,数据库的查询在providers/ContactsProvider中的ContactsProvider2.java中:
queryLocal{
…
case PHONES_FILTER:
}
输入短信的字符超过一行会有提示当前的页数和当前页剩余的可输入字符数,对应的控件在gnInitResourceRefs中声明,布局文件:gn_compose_message_activity.xml,默认为不显示此控件,当输入行数大于1行时才显示出来。
当输入字符的页面总数大于getSmsToMmsTextThreshold()方法中设置的默认值时,短信回自动转化为彩信。
通过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)) {
….
}
}