-1

現在の日付のすべてのSMSをカウントしたいSMSカウンターアプリを開発しようとしています。受信トレイのSMSの総数を数えたくありません。次のコードを使用していますが、正確な結果が得られません。受信トレイのSMSの合計をカウントしています。

TextViewビュー=新しいTextView(this);

    Uri uriSMSURI = Uri.parse("content://sms/inbox");
    Cursor cur = getContentResolver().query(uriSMSURI, null, null, null,null);
    /*
    int nsm = 0;
    while(cur.moveToNext()){
    nsm+= + cur.getCount();
    }
    */
    String sms = "";

   while ( cur.moveToNext());{
     //   sms += "From :" + cur.getString(2) + " : " + cur.getString(11)+"\n";   
   //    sms += cur.getString(2); 
        sms += "Total SMS in the INBOX : "+cur.getCount();
   }
    view.setText(sms);

    setContentView(view);

私は新しい学習者です。前もって感謝します。

4

2 に答える 2

6

過去24時間以内に受信したSMSの数を数えようとしている場合は、次のようなことを行うことができます(テストしていないため、これが実際に機能するかどうかはわかりませんが、アイデアは得られます):

Uri uriSMSURI = Uri.parse("content://sms/inbox");
long now = System.currentTimeMillis();
long last24 = now - 24*60*60*1000;//24h in millis
String[] selectionArgs = new String[]{Long.toString(last24);
String selection = "WHERE " + "date" + ">?";
Cursor cur = getContentResolver().query(uriSMSURI, null, selection, selectionArgs,null);

次に、簡単cur.getCount()に受信したSMSの数を取得する必要があります。

于 2013-02-04T13:08:03.813 に答える
-1
Uri uriSMSURI = Uri.parse("content://sms/inbox");
    long now = System.currentTimeMillis();
    long last24 = now - 24*60*60*1000;//24h in millis
    String[] selectionArgs = new String[]{Long.toString(last24)};
    String selection = "date" + ">?";
    String[] projection = new String[]{"date"};
    Cursor cur = getContentResolver().query(uriSMSURI, projection, selection, selectionArgs,null);

    String sms = String.valueOf(cur.getCount());

これは私が迅速な返信をしてくれてありがとうと思った正確な結果です

于 2013-02-06T11:02:41.153 に答える