我正在开发一个需要能够在收件箱或已发送文件夹中保存/创建新MMS的应用程序,但我无法弄清楚该方式。
我尝试了以下代码,但它给了我异常(exception):
ContentValues values = new ContentValues();
values.put("address", "xxxxxxxxxxx");
values.put("body", "body 3");
values.put("read", "0");
getContentResolver().insert(Uri.parse("content://mms/inbox"), values);
异常(exception)是:
ERROR/Database(118): Error inserting read=0 body=body 3 msg_box=1 date=1306153444 address=xxxxxxxxxxx
ERROR/Database(118): android.database.sqlite.SQLiteException: table pdu has no column named body: , while compiling: INSERT INTO pdu(read, body, msg_box, date, address) VALUES(?, ?, ?, ?, ?);
ERROR/Database(118): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
ERROR/Database(118): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
ERROR/Database(118): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
ERROR/Database(118): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
ERROR/Database(118): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:36)
ERROR/Database(118): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1145)
ERROR/Database(118): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1536)
ERROR/Database(118): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1410)
ERROR/Database(118): at com.android.providers.telephony.MmsProvider.insert(MmsProvider.java:347)
ERROR/Database(118): at android.content.ContentProvider$Transport.insert(ContentProvider.java:174)
ERROR/Database(118): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
ERROR/Database(118): at android.os.Binder.execTransact(Binder.java:288)
ERROR/Database(118): at dalvik.system.NativeStart.run(Native Method)
ERROR/MmsProvider(118): MmsProvider.insert: failed! read=0 body=body 3 msg_box=1 date=1306153444 address=xxxxxxxxxxx
UDPATE:通过删除以下行而删除了异常:
values.put("body","body 3")
但是我在邮件中看不到任何彩信。 最佳答案
我遇到了同样的问题。但是,我成功创建并还原了彩信。它基本上是数据库的反向操作。我希望您可以从数据库中获取彩信,对吗?您只需要在数据库表中放回适当的值即可。您可以在mmssms.db中获取有关数据库表的信息。一旦了解了mmssms.db,插入MMS就会非常容易。