2012-11-18 80 views
2

無法從模擬器讀取短信。我需要能夠將短信的「正文」轉換爲字符串,以便在TextView或EditView中顯示。我不是試圖使用「onRecieve」短信,而是閱讀短信。我可以通過DDMS設備模擬器控制(Windows7)或使用2個模擬器(即從端口5554發送到端口5556)發送到模擬器。消息顯示在模擬器中,但是當我嘗試讀取短信時,cursor.getCount( )只返回O,即使在仿真器上顯示「body」(即短信文本)。我認爲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();} 

回答

0

嘗試使用startManagingCursor

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

我試過這個,但是直接通過這個方法和錯誤消息:該方法已被棄用到「onCreate」。 –

+0

另外我會提到我已將READ_SMS權限添加到AndroidManifest.xml文件。 –

+0

已棄用表示它仍在工作,但有更好的實現(CusorLoader)。活動內部的方法是什麼? –