我们如何在android中的sim卡中以编程方式添加短信

时间:2011-09-02 12:06:50

标签: android

我一直在尝试使用content:// sms / sim URI。但我可以访问数据库,但不能添加到数据库。我实际上想在我的应用程序中实现“copy to sim”功能。

这是我的代码段:

     ArrayList listName=new ArrayList();
        ArrayList listContactId=new ArrayList();
        ArrayList listMobileNo=new ArrayList(); 
        ArrayList listEmail=new ArrayList();

        Uri simUri = Uri.parse("content://sms/sim");
        Cursor cursorSim    = this.getContentResolver().query(simUri, null, null,null, null);
        String[] coloumnName=new String[cursorSim.getColumnCount()];
        for(int i=0;i<cursorSim.getColumnCount();i++)
{
        coloumnName[i]= cursorSim.getColumnName(i);
        Log.i("Coulmn name -------!!!!!----------------",coloumnName[i]);
}

         while (cursorSim.moveToNext()) {           
             listName.          add(cursorSim.getString(cursorSim.getColumnIndex("name")));
             listContactId.     add(cursorSim.getString(cursorSim.getColumnIndex("_id")));      
             listMobileNo.      add(cursorSim.getString(cursorSim.getColumnIndex("number")));
             listEmail.add(cursorSim.getString(cursorSim.getColumnIndex("emails")));
            }

这只允许我阅读消息。

当我尝试插入数据时。

  • 代码段:

    //插入     ContentValues values = new ContentValues();

    // values.put(“name”,“One”);

    values.put(“address”,“1111111111”); values.put(“body”,“这是一个伟大的日子。自从我出生以来,这是预料到的”); values.put(“date”,“1312434417006”); Uri newRowUri = getContentResolver()。insert(simUri,values);    09-02 17:35:07.209:ERROR / SmsProvider(1476):请求无效:content:// sms / icc

我已在清单文件中提供了必要的权限。 任何人都可以建议我如何做到这一点。我甚至想知道这是否可以做到,是否有足够的权限来做到这一点。

由于 Vaishnavi

1 个答案:

答案 0 :(得分:0)

从手机上读取短信,你可以使用常规的api

  Cursor cursor = context.getContentResolver().query(
                                SMS_INBOX_CONTENT_URI,
                      new String[] { "_id", "thread_id", "address", "person", "date", "body" },
                                WHERE_CONDITION,
                                null,
                                SORT_ORDER);

现在遍历游标&amp;得到消息

你可以使用SmsContentProvider将邮件保存在另一个文件夹中..(比如说sim卡)

ContentValues values = new ContentValues();
values.put("address", "123456789");
values.put("body", "foo bar");
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
当然,有一些松散的目标需要被束缚..

重要的是提醒您在使用内容提供商check this link

时要小心