我一直在尝试使用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
答案 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
时要小心