通過ContentResolver對手機本地聯(lián)系人進(jìn)行增刪改查

增加手機本地聯(lián)系人

try {

? ContentValues values =new ContentValues();

? //首先向RawContacts.CONTENT_URI執(zhí)行一個空值插入寂祥,目的是獲取系統(tǒng)返回的rawContactId

? Uri rawContactUri =context.getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);

? //獲取id

? ?long ?rawContactId = ContentUris.parseId(rawContactUri);

? //往data表入姓名數(shù)據(jù)

? ? values.clear();

? ? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? ? values.put(ContactsContract.Data.MIMETYPE,? ? ? ?ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);

? ? values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,“name”);

? ? values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,"firstName");

? ? values.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,"lastName");

? ? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? ? //寫入頭像

? ? values.clear();

? ? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? ? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);

? ? values.put(ContactsContract.CommonDataKinds.Photo.PHOTO,headImageByte);

? ? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

?//寫入手機號碼

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "phone");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? //寫入住宅電話

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, ?"phone");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? //寫入商務(wù)電話

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER,?"phone");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? //寫入商務(wù)傳真

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, ?"phone");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? // 聯(lián)系人公司和職位

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Organization.COMPANY, "company");

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? // 插入Email數(shù)據(jù)

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Email.DATA, "email");

? values.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

刪除手機本地聯(lián)系人

ContentResolver resolver =context.getContentResolver();

//刪除Contacts表中的數(shù)據(jù)

int delete =0;

try {

delete = resolver.delete(ContactsContract.Contacts.CONTENT_URI, ContactsContract.Contacts._ID +" =?", new String[]{String.valueOf(contactsDTO.getId())});

}catch (Exception e) {}

//刪除RawContacts表的數(shù)據(jù)

int delete3 =0;

try {

delete3 = resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ContactsContract.RawContacts.CONTACT_ID +" =?", new String[]{String.valueOf(contactsDTO.getId())});

}catch (Exception e) {}

//刪除姓名

int delete4 =0;

try {

delete4 = resolver.delete(ContactsContract.RawContacts.CONTENT_URI, "display_name=?", new String[]{contactsDTO.getName()});

}catch (Exception e) {}

修改手機本地聯(lián)系人

try {

//獲取要修改的聯(lián)系人的rawContactId 铛碑,然后根據(jù)rawContactId 進(jìn)行修改信息

ContentResolver contentResolver =context.getContentResolver();

? Cursor cursor = contentResolver.query(ContactsContract.RawContacts.CONTENT_URI, null, ContactsContract.RawContacts.CONTACT_ID +"=?", new String[]{“id”}, null);

? int rawContactId = -1;

? while (cursor.moveToNext()) {

rawContactId = cursor.getInt(cursor.getColumnIndexOrThrow(ContactsContract.RawContacts._ID));

? }

cursor.close();

? cursor =null;

? ContentValues values =new ContentValues();

? //修改全名汽烦,名字和姓氏

? values.clear();

? values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,“name”);

? values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,"firstName");

? values.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, "lastname");

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.CONTACT_ID +"=?", new String[]{"id"});

? //修改地址

? values.clear();

? values.put(ContactsContract.CommonDataKinds.Organization.COMPANY, "company");

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.CONTACT_ID +"=? and " + ContactsContract.Data.MIMETYPE +"=?", new String[]{"id", ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE});

? //修改郵箱

? values.clear();

? values.put(ContactsContract.CommonDataKinds.Email.ADDRESS, "email");

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.CONTACT_ID +"=? and " + ContactsContract.Data.MIMETYPE +"=?", new String[]{"id", ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE});

? //修改頭像

? values.clear();

? values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, headImagebyte);

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.CONTACT_ID +"=? and " + ContactsContract.Data.MIMETYPE +"=?", new String[]{"id", ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE});


//這里修改手機號的邏輯是先通過update將之前手機號的數(shù)據(jù)設(shè)置為空,然后通過insert再出入新的手機號牍颈;通過代碼獲取聯(lián)系人手機號數(shù)據(jù)是對的琅关,但是在手機通訊里看聯(lián)系人,發(fā)現(xiàn)聯(lián)系人會有多條手機號為空的條目勤篮,(沒辦法色罚,暫時不知道該怎么直接update手機號戳护,┭┮﹏┭┮)


? //修改手機號??

values.clear();

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.MIMETYPE +"=? and " + ContactsContract.Data.RAW_CONTACT_ID +"=?", new String[]{ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, rawContactId +""});

? values.clear();

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME);

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.MIMETYPE +"=? and " + ContactsContract.Data.RAW_CONTACT_ID +"=?", new String[]{ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, rawContactId +""});

? values.clear();

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE);

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.MIMETYPE +"=? and " + ContactsContract.Data.RAW_CONTACT_ID +"=?", new String[]{ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, rawContactId +""});

? values.clear();

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "");

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK);

? contentResolver.update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.MIMETYPE +"=? and " + ContactsContract.Data.RAW_CONTACT_ID +"=?", new String[]{ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, rawContactId +""});

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, “phone”);

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, “phone”);

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, “phone”);

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

? values.clear();

? values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

? values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

? values.put(ContactsContract.CommonDataKinds.Phone.NUMBER,“phone”);

? values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK);

? context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

查詢手機本地聯(lián)系人

Cursor cursor =context.getContentResolver().query(

ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

? ? ? ? while (cursor.moveToNext()) {

? ? ? ? ? //新建一個聯(lián)系人實例

? ? ? ? ? ContactsDTO temp =new ContactsDTO();

//獲取聯(lián)系人id

? ? ? ? ? String contactId = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID));

? ? ? ? ? temp.id = contactId;

//獲取聯(lián)系人name

? ? ? ? ? Cursor nameCur =context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, null, ContactsContract.Data.CONTACT_ID +"=" + contactId, null, null);

? ? ? ? ? if (nameCur.moveToNext()) {

String given = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME));

? ? ? ? ? ? String family = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME));

? ? ? ? ? ? temp.setFirst_name(given);

? ? ? ? ? ? temp.setLast_name(family);

? ? ? ? ? }

nameCur.close();

String contactName = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));

? ? ? ? ? temp.setName(contactName);

//獲取聯(lián)系人頭像

? ? ? ? ? try {

temp.head_img =getContactsIcon(context, contactId);

? ? ? ? ? }catch (IOException e) {

e.printStackTrace();

? ? ? ? ? }

//獲取聯(lián)系人郵箱

Cursor email =context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID +" = " + contactId, null, null);

? ? ? ? ? while (email.moveToNext()) {

String mail = email.getString(email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));

? ? ? ? ? ? temp.setEmail(mail);

? ? ? ? ? }

email.close();

//獲取聯(lián)系人公司

? ? ? ? ? String orgWhere = ContactsContract.Data.CONTACT_ID +" = ? AND " + ContactsContract.Data.MIMETYPE +" = ?";

? ? ? ? ? String[] orgWhereParams =new String[]{contactId,

? ? ? ? ? ? ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE};

? ? ? ? ? Cursor orgCur =context.getContentResolver().query(ContactsContract.Data.CONTENT_URI,

? ? ? ? ? ? null, orgWhere, orgWhereParams, null);

? ? ? ? ? if (orgCur.moveToFirst()) {

//組織名 (公司名字)

? ? ? ? ? ? String company = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA));

? ? ? ? ? ? temp.setCompany(company);

? ? ? ? ? }

orgCur.close();

? ? ? ? ? //獲取聯(lián)系人電話號碼

? ? ? ? ? Cursor phoneCursor =context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

? ? ? ? ? ? null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"=" + contactId, null, null);

? ? ? ? ? while (phoneCursor.moveToNext()) {

int pN = phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);

? ? ? ? ? ? String phone = phoneCursor.getString(pN);

? ? ? ? ? ? int pT = phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE);

? ? ? ? ? ? String phoneType = phoneCursor.getString(pT);

? ? ? ? ? ? phone = phone.replace("-", "");

? ? ? ? ? ? phone = phone.replace(" ", "");

? ? ? ? ? ? if (StringUtils.parseIntByString(phoneType) == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) {

temp.setMobile_phone(phone);

? ? ? ? ? ? }else if (StringUtils.parseIntByString(phoneType) == ContactsContract.CommonDataKinds.Phone.TYPE_HOME) {

temp.setHome_phone(phone);

? ? ? ? ? ? }else if (StringUtils.parseIntByString(phoneType) == ContactsContract.CommonDataKinds.Phone.TYPE_FAX_HOME) {

temp.setHome_fax(phone);

? ? ? ? ? ? }else if (StringUtils.parseIntByString(phoneType) == ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE) {

temp.setBusiness(phone);

? ? ? ? ? ? }else if (StringUtils.parseIntByString(phoneType) == ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK) {

temp.setBusiness_fax(phone);

? ? ? ? ? ? }

}

//記得要把cursor給close掉

? ? ? ? ? phoneCursor.close();

? ? ? ? }

cursor.close();


/**

? * 獲取聯(lián)系人頭像

? *

? * @param context

? * @return

? */

? public static byte[]getContactsIcon(Context context, String contactsId)throws IOException {

// 獲取內(nèi)容解析者

? ? ContentResolver contentResolver = context.getContentResolver();

? ? // 查頭像要傳的uri 參1 baseuri 參2 要拼接的部分

? ? Uri contactUri = Uri.withAppendedPath(

ContactsContract.Contacts.CONTENT_URI, contactsId);

? ? //獲取聯(lián)系人頭像的流

? ? InputStream iconIs = ContactsContract.Contacts

.openContactPhotoInputStream(contentResolver, contactUri);

? ? if (null == iconIs) {

return null;

? ? }

? ? return toByteArray(iconIs);

? }


public static byte[]toByteArray(InputStream input)throws IOException {

ByteArrayOutputStream output =new ByteArrayOutputStream();

? byte[] buffer =new byte[4096];

? int n =0;

? while (-1 != (n = input.read(buffer))) {

output.write(buffer, 0, n);

? }

return output.toByteArray();

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載精续,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者重付。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市弓颈,隨后出現(xiàn)的幾起案子翔冀,更是在濱河造成了極大的恐慌爬迟,老刑警劉巖付呕,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徽职,死亡現(xiàn)場離奇詭異,居然都是意外死亡姆钉,警方通過查閱死者的電腦和手機说订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門抄瓦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人陶冷,你說我怎么就攤上這事钙姊。” “怎么了埂伦?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵煞额,是天一觀的道長。 經(jīng)常有香客問我沾谜,道長,這世上最難降的妖魔是什么基跑? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任婚温,我火速辦了婚禮,結(jié)果婚禮上媳否,老公的妹妹穿的比我還像新娘栅螟。我一直安慰自己,他們只是感情好逆日,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布嵌巷。 她就那樣靜靜地躺著萄凤,像睡著了一般室抽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上靡努,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天坪圾,我揣著相機與錄音,去河邊找鬼惑朦。 笑死兽泄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的漾月。 我是一名探鬼主播病梢,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼梁肿!你這毒婦竟也來了蜓陌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吩蔑,失蹤者是張志新(化名)和其女友劉穎钮热,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烛芬,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡隧期,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年飒责,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仆潮。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宏蛉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出性置,到底是詐尸還是另有隱情檐晕,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布蚌讼,位于F島的核電站辟灰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏篡石。R本人自食惡果不足惜芥喇,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凰萨。 院中可真熱鬧继控,春花似錦、人聲如沸胖眷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珊搀。三九已至冶忱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間境析,已是汗流浹背囚枪。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劳淆,地道東北人链沼。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像沛鸵,于是被迫代替她去往敵國和親括勺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容