現在、すべての連絡先を照会してデータベースに保存しようとしています。ただし、この問題を認識しています。連絡先に複数の番号がある場合、同じ連絡先名と他の複数の番号が返されます。しかし、私の連絡先に電子メールがある場合、クエリは同じ名前と同じ番号を複製します。これを解決するにはどうすればよいですか?名前と番号を一度だけ保存したいと思います。そして、私は電子メールとは何の関係も望んでいません。
TYPE_MOBILEだけが欲しいと定義することで、なんとか携帯電話番号だけを取得できました。ただし、連絡先にGoogle +がある場合、クエリで同じ名前と同じ番号が重複していることに気付きました。誰かがこの線に沿って私を導くことができますか?ありがとう!
これが私が使用しているコードです:
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext()) {
int phoneType = phones.getInt(phones.getColumnIndex(Phone.TYPE));
if (phoneType == Phone.TYPE_MOBILE)
{
mobile = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
mobile = mobile.replaceAll("\\s", "");
id = phones.getString(phones.getColumnIndex(ContactsContract.Contacts._ID));
name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
long idL = DbHelper.createContact(name, "", mobile, "", id);
if (idL > 0) {
mRowId = idL;
}
}
phones.close();
}