2012-03-24 84 views
1

我想從收件箱中讀取短信。下面給出的代碼片段在HTC Desire上工作正常,但在三星Galaxy上不起作用。Android:從三星Galaxy設備的收件箱中讀取短信問題

Uri uri = Uri.parse("content://sms/inbox"); 
Cursor c= getContentResolver().query(uri, null, null ,null,null); 
startManagingCursor(c);   

String[] body = new String[c.getCount()]; 
String[] number = new String[c.getCount()]; 

System.out.println("c.getCount() :: " + c.getCount() + " c.moveToFirst() :: " + c.moveToFirst()); 

if(c.moveToFirst()) { 
     for(int i=0;i<c.getCount();i++) { 
      body[i]= c.getString(c.getColumnIndexOrThrow("body")).toString(); 
      number[i]=c.getString(c.getColumnIndexOrThrow("address")).toString(); 
      c.moveToNext(); 
     } 
    } 
c.close(); 

在三星Galaxy c.getCount()返回0和c.moveToFirst()返回false。

在此先感謝。

回答

0

我已經使用了以下代碼,並且可以在android galaxy Tab和Galaxy手機中正常工作。 這些值甚至會顯示在日誌中以便於實施。

Uri uri = Uri.parse("content://sms/inbox"); 


      Cursor c = null; 
      try { 

       String columns[] = new String[] { "person", "address", "body", 
         "date", "status" }; 
       String sortOrder = "date DESC"; 
       c = context.getContentResolver().query(uri, null, null, null, 
         null); 
       for (int j = 0; j < c.getColumnNames().length; j++) { 
        Log.v("INBOX"," name " + c.getColumnNames()[j].toString()); 

       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
+0

@Arpit ....謝謝....但我想閱讀與文本的每一個短信。 – 2012-03-24 13:57:21

+0

那麼,根據你的問題,你有什麼問題可以得到所有的收件箱的詳細信息,身體包含文本和地址作爲電話號碼,還有16列,提供有關它的不同信息.. – 2012-03-25 18:03:00

+0

不,我是無法獲得任何收件箱的詳細信息,如...正文文本,地址...等。在三星Galaxy ......但我能夠獲得HTC渴望的所有細節。 – 2012-03-26 09:06:30