当前位置: 代码迷 >> Android >> android 短信 草稿箱有关问题
  详细解决方案

android 短信 草稿箱有关问题

热度:464   发布时间:2016-05-01 13:25:39.0
android 短信 草稿箱问题
各位技术人员们 大家好:
  我现在做一个短信的应用,现在遇到了一个问题 就是我想把未编辑完成的短信存到系统的草稿箱里。 content://sms/draft 这个路劲。 但是在sms表里不会生成thread_id这个字段的内容,但是系统原生的草稿会生成这个字段。 我想问下 这应该怎么做呢? 怎么保存草稿箱呢? 
  // 保存短信
public static void saveMessage(Context context, String address,
String message) {
try {
ContentValues values = new ContentValues();
values.put("date", System.currentTimeMillis());
values.put("read", 0);
values.put("type", 2);
values.put("address", address);
values.put("body", message);
context.getContentResolver().insert(
Uri.parse("content://sms/sent"), values);
} catch (Exception e) {
e.printStackTrace();
}
}

这个是保存短信的 也没有手动去生成thread_id啊。 但是他就是在数据库里有 thread_id 这个字段内容。 迷惑。希望大侠们帮我解答下 非常感谢。

------解决方案--------------------
id号由数据库自动生成
------解决方案--------------------
thread_id是根据收件人号码生成的,不知道你注意到没有,系统原生的草稿都是有号码的,没有号码保存不了草稿,生成thread_id的代码要看Telephony.java (frameworks\base\core\java\android\provider)里的getOrCreateThreadId方法,其实原生系统是没有草稿箱这个概念的,只是在数据库有一字段说明是草稿状态,而且每个会话只能有一个草稿。对于你的问题,我想可以是并没有调用到getOrCreateThreadId这个方法,如果你想实现一个号码可以有多个草稿,也许你应该考虑一个特殊的thread_id以区分草稿和其它的会话。
  相关解决方案