2012-03-15 8 views
1

私は日付の後に受信したすべてのSMSを読み込もうとしています。ここで日付の後にSMSを読む

はコードです:

Uri SMS_CONTENT_URI = Uri.parse("content://sms"); 
Uri SMS_INBOX_CONTENT_URI = Uri.withAppendedPath(SMS_CONTENT_URI, "inbox"); 

Cursor cursor = context.getContentResolver().query(SMS_INBOX_CONTENT_URI, new String[] { "_id" }, "date>=61291393200000", null, null); 
//61291393200000 = 03/01/12 

これは私の空のカーソルを返します。

私はこのコードを実行していた。

Cursor cursor = context.getContentResolver().query(SMS_INBOX_CONTENT_URI, new String[] { "_id" }, "read=1", null, null); 

は私にすべてのSMSを返していました。

誰かがsmsを日付でフィルタリングする方法を知っていますか?

送信SMSでも実行しようとしましたが、同じ問題がありました。

答えて

7

次のコードを使用して、特定の日付の後にSMSメッセージを取得します。

// First select the date shown by the datepicker. 
// Here I am assuming that a DatePicker object is already created with id dpResult 
// to select a particular date. 
DatePicker datePicker = (DatePicker) findViewById(R.id.dpResult); 


// Now create a SimpleDateFormat object.   
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 

// Add 1 in month as its 0 based indexing in datePicker but not in SimpleDateFormat 
String selectedDate = datePicker.getYear() + "-" + (datePicker.getMonth() + 1) + "-" + datePicker.getDayOfMonth(); 

// Now create a start time for this date in order to setup the filter. 
Date dateStart = formatter.parse(selectedDate + "T00:00:00"); 

// Now create the filter and query the messages. 
String filter = "date>=" + dateStart.getTime(); 
final Uri SMS_INBOX = Uri.parse("content://sms/inbox"); 
Cursor cursor = getContentResolver().query(SMS_INBOX, null, filter, null, null); 

while(cursor.moveToNext()) { 

    // Perform the required stuff here.    
} 
cursor.close(); 

ガットhttp://realembed.blogspot.com/2013/11/retrieve-sms-message-on-particular-date.html

+0

私はもうこのプロジェクトに取り組んでいませんが、コードは私のために大丈夫です。私はその理由で答えを受け入れました。 – jonathanrz

1

「date> = '61291393200000'」を試しましたか?

数値のようですが、SQL文には 'xxx'が必要です。

+0

からのコードスニペットの上に働いていません:/を。 しかし、ありがとうとにかく。 – jonathanrz

関連する問題