2012-04-18 81 views
1

我試圖從聯繫人表中讀取聯繫人並將其全部存儲到列表變量中......但無法弄清楚爲什麼它似乎無法正常工作。通過json對象發送到Web服務器。如何從聯繫人數據庫中讀取和存儲所有聯繫人列表?

 private static final String TABLE_CONTACTS = "contacts"; 



// contacts JSONArray 
JSONArray contacts = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    List<contact> l=new ArrayList<contact>(); 
    String query="SELECT * FROM"+ TABLE_CONTACTS; 

    DBHelper help= new DBHelper(getBaseContext()); 
    SQLiteDatabase db=help.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(query, null); 
    if(cursor.moveToFirst()) 
    { 
     do{ 
      contact contact = new contact(); 
      contact.setID(Integer.parseInt(cursor.getString(0))); 
      contact.setName(cursor.getString(1)); 
      contact.setPhoneNumber(cursor.getString(2)); 
      Toast.makeText(this,contact.name,Toast.LENGTH_LONG); 
      l.add(contact); 
     } 
     while(cursor.moveToNext()); 
    } 

和清單文件具有2個權限

 <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS"/> 

和其用於sqlitopenhelper延伸到getWritableDatabase DBHelper類..

class DBHelper extends SQLiteOpenHelper { 
private static final String DATABASE_NAME = "contactsManager"; 

    // Contacts table name 
    private static final String TABLE_CONTACTS = "contacts"; 
DBHelper(Context context) { 
    super(context,DATABASE_NAME, null,1); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub  
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub  
} 

}

+0

請發佈您的錯誤日誌。 – Sam 2012-04-18 02:28:53

+0

你想嘗試使用手機中的聯繫人嗎? – ValayPatel 2012-04-18 02:34:01

+0

@ValayPatel ..是的,,,從Android手機預定義的聯繫人表 – 2012-04-18 02:37:57

回答

5
private void getDetails(){ 
    Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 
    ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
    String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
         ContactsContract.CommonDataKinds.Phone.NUMBER }; 
    Cursor names = getContentResolver().query(uri, projection, null, null, null); 
    int indexName = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); 
    int indexNumber = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); 
    names.moveToFirst(); 
    do { 
     String name = names.getString(indexName); 
     Log.e("Name new:", name); 
     String number = names.getString(indexNumber); 
     Log.e("Number new:","::"+number); 
    } while (names.moveToNext()); 
} 

使用上面的代碼從聯繫人數據庫名稱的列表和數字。

相關問題