2

エミュレーターから SMS を読み取れません。SMSの「本文」を文字列にして、TextViewまたはEditViewに表示できるようにする必要があります。「onRecieve」SMSを使用しようとしているのではなく、SMSを読み取ろうとしています。DDMS Devices Emulator Control (Windows7) を介して、または 2 つのエミュレーターを使用してエミュレーターに送信できます。つまり、ポート 5554 からポート 5556 に送信します。メッセージはエミュレーターに表示されますが、SMS を読み取ろうとすると、cursor.getCount( )は、「本文」(つまり、SMSテキスト)がエミュレーターに表示されていても、Oのみを返します。SMS を読み取るには、cursor.getCount() が 1 以上である必要があると思いますが、0 しかありません。エミュレータに cursor.getCount() > 0 を表示させ、実際にSMSの本文を読みますか?つまり、次のコードを機能させる方法です。エミュレーターを使用すると、カウントは0に等しいと言いますが、

if(count>0){
   if(cursor.moveToFirst()){
    body = cursor.getString(cursor.getColumnIndexOrThrow("body")).toString();
    txtLastSMS.setText(body);
   }
 }

関連するコードは次のとおりです。

    Uri CONTENT_URI = Uri.parse("content://sms/sent");    
    Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null,     null);                                   
    String body = null;
    if (cursor != null)
       try
       {
          int count = cursor.getCount();
          if(count>0){
             if(cursor.moveToFirst()){
             body = cursor.getString(cursor.getColumnIndexOrThrow("body")).toString();
             txtLastSMS.setText(body);
          }
        }   
      }
      finally{ cursor.close();}
4

1 に答える 1

0

使ってみてくださいstartManagingCursor:

Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null,     null);
startManagingCursor(cursor);
于 2012-11-19T08:32:31.590 に答える