電話の連絡先の追加、削除、または変更時にブロードキャスト受信者またはサービスに通知することはできますか?Android - 電話での連絡先の変更の受信
私はcontactsContractsを介してアクセスされるように1つのコピーsqlite電話連絡先を考えていたため、電話連絡先にすばやくアクセスする必要があるアプリケーションを作成しています。
可能でない場合は、次のコードの応答速度を向上させて、電話番号の連絡先リストに番号が含まれているかどうかを知る方法はありますか?
public boolean isNumberInContacts(String Num){
try {
Cursor cursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String colID = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (Integer.parseInt(hasPhone)==1) {
Cursor phone = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ colID,null, null);
for (int i=0;phone.moveToNext();i++){
if (Num.equals(mNumber.getNumber((phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)))))){
return true;
}
}
}
}
cursor.close();
} catch (Exception e) {
e.printStackTrace();
Log.d(TAG, "Error when validate number in contacts: "+ e.toString());
}
return false;
}
おかげ
同期アダプタでは、これを行うことができます。http://developer.android.com/resources/samples/SampleSyncAdapter/index.html - 同期を有効にする必要があります。 – Jens