2014-02-13 58 views
0

我使用日誌,當我得到聯繫人的號碼,並有一切正確的,直到我從數據庫中讀取並放入一個列表中,然後我從數字中鬆開「+」字符。Android /數據庫。任何想法爲什麼從電話號碼中消失的第一個字符,「+」?

public void getNumbers(String box) { 
    Uri uri = Uri.parse("content://sms/" + box); 
    Cursor c = getContentResolver().query(uri, null, null, null, null); 
    startManagingCursor(c); 

    // Read the sms data and store it in the list 
    if (c.moveToFirst()) { 
     for (int i = 0; i < c.getCount(); i++) { 
      SMSData sms = new SMSData(); 

sms.setNumber(c.getString(c.getColumnIndexOrThrow("address")) 
        .toString()); 

      String nr = sms.getNumber(); 
      Log.d("I got this:", nr); 

      db.getSMSDataBySearch(nr); 

      c.moveToNext(); 
     } 
    } 
    c.close(); 
} 

而SQLite的代碼:

SQLiteDatabase分貝= this.getWritableDatabase(); +「(SELECT 1 FROM version3 WHERE number =」+ value +「)」,null);這個函數可能會導致錯誤。

+2

這裏是你的代碼? – Nambi

+0

我更新了代碼。 – user3270899

回答

0

短信內容提供商不存儲格式,只存儲數字數據。

如果你想讓它格式化,有工具或者你可以建立它:

Java phone number format API

+0

但在日誌中出現「+」。 – user3270899

+0

我不知道你的數據庫是如何設置的 - 但SQLite可能不在乎你的數字是否爲「+123456」,它只會刪除「+」。那麼你的數據庫將它存儲爲一個數字? – Jim

+0

它像一個字符串一樣存儲。如果我使用另一種方法在數據庫中寫入,那就工作了。但是粘貼的代碼不會。 – user3270899

相關問題