2012-07-12 86 views
0

我正在使用此代碼從Emulator中檢索SMS。之後,我需要將其發佈到DropBox.I保存一些消息給Emulator,它將檢索兩件事Number和Body.At檢索時顯示 錯號但正確的身體。如何更正號碼,我將號碼保存到變量號碼。我的代碼在這裏,我正在使用2.1版本。短信號碼不正確?

代碼

ContentResolver cr = getContentResolver(); 
Cursor c = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null); 
while(c.moveToNext()){ 

Number = c.getInt(c.getColumnIndexOrThrow("address")); 

Body = c.getString(c.getColumnIndexOrThrow("body")).toString(); 

smslist.add(Number + ":" +"\n"+ Body); 
    } 
itemAdapter.notifyDataSetChanged(); 

c.close(); 

任何溶液?

+1

什麼它顯示在數字的地方..和你在哪裏顯示數字 – AAnkit 2012-07-12 11:37:47

+0

嘗試使用:String number = dataCursor.getString(dataCursor.getColumnIndexOrThrow(「address」));是的,你必須使用以小寫字母開頭的變量名。 – Hiral 2012-07-12 11:42:40

+0

在ListView中顯示數字...而不是來到保存的數字它來了一些其他的數字 – Hari 2012-07-12 11:43:11

回答

1

在你的代碼使用

Number = c.getInt(c.getColumnIndexOrThrow("address")); 

使用c.getString(c.getColumnIndexOrThrow("address"))方法,而不是getInt()方法

見下面的鏈接太多,類型列在短信URI

retrieving number.

+0

謝謝Ankit.I現在得到了正確的答案。它顯示所有帶數字的短信,號碼是10位數的手機號碼,我在模擬器中保存了一些數字作爲與特定姓名的聯繫人,但在展示上它只顯示數字,而不是該聯繫人的姓名。爲什麼它會發生......它不會出現姓名? – Hari 2012-07-12 11:58:12

+0

如果它解決了您的問題,請將其標記爲已接受。對於第二個問題,您需要通過一個接一個地從COntacts內容提供商處獲取聯繫人姓名。將此答案標記爲已接受,在StackO上發佈另一個問題。在這裏給鏈接,我會在那裏發佈另一個答案。 – AAnkit 2012-07-12 12:00:58

+0

當然,感謝您的回覆......其實問題是我沒有使用聯繫人內容提供者。 – Hari 2012-07-12 12:01:44

0

對待地址爲String而不是Int。

我認爲它應該可以解決問題。

String str = cursor.getString(c.getColumnIndexOrThrow(「address」));

問候,

dattatray。

+0

Dattatray .......我得到了答案我知道哪裏是錯誤其實..謝謝..但它沒有顯示我保存在模擬器中的數字的名稱 – Hari 2012-07-12 11:59:09