从模拟器读取短信

时间:2012-11-18 20:09:43

标签: java android eclipse android-emulator

无法从模拟器中读取短信。我需要能够将短信的“正文”变成一个字符串,以便在TextView或EditView中显示。我不是试图使用“onRecieve”短信,而是阅读短信。我可以通过DDMS设备仿真器控制(Windows7)或使用2个仿真器发送到仿真器,即从端口5554发送到端口5556.消息显示在模拟器中,但是当我尝试读取短信时,cursor.getCount( )即使在模拟器上显示“body”(即短信文本),也只返回O.我认为cursor.getCount()必须等于或大于1才能读取短信,但它只是= 0.我该怎么做才能让模拟器显示一个cursor.getCount()> 0,并允许我实际读取短信的正文?即如何使以下代码工作。使用模拟器时,计数表示它等于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();}

1 个答案:

答案 0 :(得分:0)

尝试使用startManagingCursor

Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null,     null);
startManagingCursor(cursor);