2014-10-28 74 views
0

我需要編寫一個sqlite語句來檢索所有HAS_PHONE_NUMBER列和從Contacts表(其中所有電話聯繫人駐留)。編寫SQLite語句檢索所有聯繫人信息

我希望它會看起來像下面這樣:

它像Select HAS_PHONE_NUMBER, _ID from Contacts

其實我需要的Java代碼,我可以(通過上面的SQLite的語句)抓住從Android的電話簿記錄並保存在一個數組或列表的結果

+0

抱歉,但是,有什麼問題嗎?我認爲你已經自己回答 – Leo 2014-10-28 05:49:34

+0

可以詳細說明.... – 2014-10-28 05:52:39

+0

我需要java代碼,我可以抓住記錄並將其保存在一個數組中。我已更新我的問題 – Illep 2014-10-28 05:58:15

回答

0

這樣:

if (Integer.parseInt(cur.getString(
      cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
     Cursor pCur = cr.query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
     null, 
     ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
     new String[]{id}, null); 
     while (pCur.moveToNext()) { 
     // Do something with phones 
     } 
     pCur.close(); 
    } 
+0

謝謝,但我想在代碼中有SQL查詢。查詢是'Select * from Contacts' – Illep 2014-10-28 06:17:41

0

您可以通過下面的方法做到這一點: -

ArrayList<String> id=new ArrayList<String>(); 
    Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null,null, null, null); 

    if (cursor.getCount() > 0) { 

     while (cursor.moveToNext()) { 


      int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))); 

      if (hasPhoneNumber > 0) { 

      String contact_id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
      id.add(contact_id); 


      } 
     } 
    } 
       cursor.close(); 

不要忘了提讀取聯繫人權限在menifest

+0

謝謝,但是'Select'語句在哪裏。我也想寫Select語句。像'select * from Contacts' – Illep 2014-10-28 06:12:28

+0

是你熟悉的android,爲了編寫上面類型的查詢,你需要數據庫實例,這裏我們有內容解析器,我不認爲我們可以在內容解析器上運行一個rawquery。以上是一個方法我們執行並從中查詢數據android – 2014-10-28 06:19:02

+0

我可以在系統表上使用rawqueries,例如'Contacts'表? – Illep 2014-10-28 06:27:13