J'ai un problème étrange. J'essaye de supprimer des contacts basés sur le téléphone donné et/ou l'adresse électronique de l'appareil. J'avais 150 contacts dans l'appareil, donc il a supprimé environ 100 contacts mais reste 50 ne supprime pas.Context.ContentResolver.Delete renvoie 0 pour un contact
J'utilise le code suivant pour supprimer le contact (cette méthode appelle à partir d'une boucle).
public bool DeleteRecord(string phoneNumber, string email)
{
var Id = "0";
var isDeleted = false;
string lookupKey = string.Empty;
try
{
var uri = ContactsContract.Contacts.ContentUri;
string[] projection = {
InterfaceConsts.Id,
InterfaceConsts.DisplayName,
ContactsContract.Contacts.InterfaceConsts.LookupKey
};
var uri1 = Android.Net.Uri.WithAppendedPath(ContactsContract.PhoneLookup.ContentFilterUri, Android.Net.Uri.Encode(phoneNumber));
var cursor = appContext.ContentResolver.Query(uri1, projection, null, null, null);
if (cursor.MoveToFirst())
{
do
{
Id = cursor.GetString(cursor.GetColumnIndex(projection[0]));
if (Id != "0")
{
int idx = cursor.GetColumnIndex(ContactsContract.ContactsColumns.LookupKey);
lookupKey = cursor.GetString(idx);
}
break;
} while (cursor.MoveToNext());
cursor.Close();
}
isDeleted = Id != "0";
if (isDeleted)
{
var u = Android.Net.Uri.WithAppendedPath(ContactsContract.Contacts.ContentLookupUri, lookupKey);
var res = appContext.ContentResolver.Delete(u, "contact_id=" + Id, null);
return true;
}
}
catch (Exception ex)
{
Android.Util.Log.Error("Error:", ex.Message + " " + ex.StackTrace);
}
return false;
}
Je vois une erreur dans « Barre de notification » de l'appareil: « Trop de suppressions de contact »
donc pas sûr de ce qui ne va pas ici. Des pensées à ce sujet?
Désactiver la synchronisation des contacts sur les comptes de votre appareil – SushiHangover