我可以使用Sqlite查询来编辑SMS的数据库吗? 我使用contentResolver编辑短信,但它没有正常工作! 我搜索了这个问题,但我找不到有用的答案!许多开发人员都有同样的问题!
感谢。
我想知道你是否能给我一些帮助。 我希望在收件箱中更改短信的号码并在android中发送方框。 我在getContentResolver中有删除,插入和更新命令的问题。他们不工作! 我搜索了这个问题,但我找不到有用的答案! 我为这个问题读了很多问题和答案,但没有一个能解决我的问题! 此代码更改了SMS的号码并在SDK 17中有效。但在SDK 20中无效!更新命令从未在任何SDK的版本中使用!!出于这个原因,我阅读了所需的信息,然后删除短信并插入新的短信与旧信息和新的电话号码。
String[] prj={"_id","body","address","date","seen","read","type","thread_id","date_sent","status"};
Cursor cr=SMS_Service.this.getContentResolver().query(uri, prj, null, null, null);
while(cr.moveToNext())
{
String _body=cr.getString(cr.getColumnIndex("body"));
String _date=cr.getString(cr.getColumnIndex("date"));
String _seen=cr.getString(cr.getColumnIndex("seen"));
String _read=cr.getString(cr.getColumnIndex("read"));
String _type=cr.getString(cr.getColumnIndex("type"));
String MsgID=cr.getString(0);
String _date_sent=cr.getString(cr.getColumnIndex("date_sent"));
String _status=cr.getString(cr.getColumnIndex("status"));
ContentValues values=new ContentValues();
values.put("body", _body);
values.put("address", "0123456789");//New phone's number
values.put("date", _date);
values.put("seen", _seen);
values.put("read", _read);
values.put("type", _type);
values.put("date_sent", _date_sent);
values.put("status", _status);
String where="_id=?";
String[] filter={cr.getString(cr.getColumnIndex(Sms._ID))};
SMS_Service.this.getContentResolver().delete(Sms.CONTENT_URI,where, filter);
SMS_Service.this.getContentResolver().insert(uri, values);
}
我使用这些预设:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
我可以使用Sqlite查询编辑短信数据库(mmssms.db)吗?
答案 0 :(得分:2)
如果要在具有API&gt;的设备中修改SMS数据库18您必须使您的应用成为您设备中的默认应用。我按照这个链接成功了(你需要仔细阅读并遵循他们所说的所有内容,特别是关于mandifest的例子,你需要写所有权限,意图过滤器甚至你的应用程序都没有任何功能,如发送或接收消息。 ..) http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html