2012-04-18 19 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"/> 

とgetWritableDatabaseにsqlitopenhelperを拡張するために使用される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

+0

電話から連絡先を使用しようとしていますか? – ValayPatel

+0

@ValayPatel ..はい、,,,アンドロイド携帯電話の定義済み連絡先から –

答えて

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()); 
} 

連絡先データベースから名前と番号のリストを取得するには上記のコードを使用します。

関連する問題