开发者

How can we add sms programatically in sim card in android

I have been trying to do this using content://sms/sim URI. But i can just access the data base, but not add to it. I actually want to implement 'copy to sim' functionality in my application.

This is my code snippet:

     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")));
            }

This just allows me to read messages.

When i try to insert data.

  • Code snippet:

    //Insert ContentValues values = new ContentValues();

    // values.put("name", "One");

    values.put("address", "1111111111"); values.put("body", "Its a great day. Thats is been expected since i was born"); values.put("date", "1312434417006"); Uri newRowUri = getContentResol开发者_运维百科ver().insert(simUri , values); 09-02 17:35:07.209: ERROR/SmsProvider(1476): Invalid request: content://sms/icc

I have given necessary permissions in my manifest file. Can anyone suggest me how to do it. I even want to know whether this can be done, are there enough permissions to do this also.

Thanks Vaishnavi


to read an sms from the phone you can use the regular api

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

now iterate through the cursor & get the message

you can use the SmsContentProvider to save the message in another folder.. (say the sim card)

ContentValues values = new ContentValues();
values.put("address", "123456789");
values.put("body", "foo bar");
getContentResolver().insert(Uri.parse("content://sms/sent"), values);

ofcourse there are some loose ends which needs to be tied up..

its important to remind you to be careful while using content providers check this link

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜