我可以使用Sqlite查询来编辑SMS的数据库

时间:2015-01-09 17:25:30

标签: android sqlite sms

我可以使用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)吗?

1 个答案:

答案 0 :(得分:2)

如果要在具有API&gt;的设备中修改SMS数据库18您必须使您的应用成为您设备中的默认应用。我按照这个链接成功了(你需要仔细阅读并遵循他们所说的所有内容,特别是关于mandifest的例子,你需要写所有权限,意图过滤器甚至你的应用程序都没有任何功能,如发送或接收消息。 ..) http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html