2011-05-19 78 views
5

在我的应用程序中,我需要读取仅来自一个数字的短信,当我收到它时,我需要将它设置为自动读取,而不是在sms android应用程序中设置它,而是从我的应用程序。我能怎么做? 谢谢!在Android中设置短信

回答

3

简单例子:

Uri uri = Uri.parse("content://sms/inbox"); 
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); 
while (cursor.moveToNext()) { 
    // Retrieve sms 
    // see column "address" for comparing 

    // Then update the sms and set the column "read" to 1 
} 
+0

感谢您的帮助。我有一个问题:while(cursor.moveToNext()&&!stato){ \t \t \t \t String asd = new String(cursor.getBlob(cursor.getColumnIndex(“read”))); \t \t \t \t Toast.makeText(context,asd,Toast.LENGTH_SHORT).show();如果我在getColumnIndex中设置地址没有问题,但是如果我设置了读取或其他列名称,则不起作用。为什么?谢谢! – pindol 2011-05-19 16:35:38

+0

上次我为android写了一些东西,大概一年前。对不起,但我不知道答案。但有几个Uri的短信API。您可以尝试将短信写入另一个短信,如** content:// sms/inbox **,然后删除收件箱中的旧短信。 – hoferm 2011-05-20 07:01:00

+0

我找到了解决方案,谢谢! – pindol 2011-05-20 10:37:31

14

让我更新此:

ContentValues values = new ContentValues(); 
values.put("read",true); 
getContentResolver().update(Uri.parse("content://sms/"),values, "_id="+SmsMessageId, null); 

SmsMessageId是消息,您在SMS数据库中找到的_id