如何使用 SQLite 在 Android 中的 Table 中获取联系人?
How to get Contacts in a Table in Android using SQLite?
我想将存储在 phone 上的联系人放入在我的 SQLite 数据库中创建的 table 中。
列显示不同的字段,例如姓名、phone 号码、电子邮件等
每行显示不同的联系人。
我该如何实现?
使用androids content provider获取联系人数据作为游标,然后迭代游标行并将数据保存到sqlite
首先添加权限:-
<uses-permission android:name="android.permission.READ_CONTACTS" >
</uses-permission>
然后在java class:-
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phones.close();
在 while 循环中添加到你的 sqlite 数据库
尝试这样做:-
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "EventBoard.db";
public static final String EVENTS_TABLE = "Events";
public static final String GUESTS_TABLE = "Guests";
public Context ctx;
public DatabaseHelper(Context context) {
ctx = context;
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + EVENTS_TABLE + "( _id INTEGER PRIMARY KEY AUTOINCREMENT,Name TEXT,Time TEXT,Date TEXT,Venue TEXT,Contact TEXT,Description TEXT);");
db.execSQL("create table " + GUESTS_TABLE + "(Name TEXT,Phone TEXT,Email TEXT);");
createGuestsTable(ctx);
}
我想将存储在 phone 上的联系人放入在我的 SQLite 数据库中创建的 table 中。 列显示不同的字段,例如姓名、phone 号码、电子邮件等 每行显示不同的联系人。 我该如何实现?
使用androids content provider获取联系人数据作为游标,然后迭代游标行并将数据保存到sqlite
首先添加权限:-
<uses-permission android:name="android.permission.READ_CONTACTS" >
</uses-permission>
然后在java class:-
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phones.close();
在 while 循环中添加到你的 sqlite 数据库
尝试这样做:-
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "EventBoard.db";
public static final String EVENTS_TABLE = "Events";
public static final String GUESTS_TABLE = "Guests";
public Context ctx;
public DatabaseHelper(Context context) {
ctx = context;
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + EVENTS_TABLE + "( _id INTEGER PRIMARY KEY AUTOINCREMENT,Name TEXT,Time TEXT,Date TEXT,Venue TEXT,Contact TEXT,Description TEXT);");
db.execSQL("create table " + GUESTS_TABLE + "(Name TEXT,Phone TEXT,Email TEXT);");
createGuestsTable(ctx);
}