2011-05-19 86 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