C# 外部更改通讯簿
救命啊。我试图跟踪通讯录中的变化。但是方法C# 外部更改通讯簿,c#,ios,xamarin,C#,Ios,Xamarin,救命啊。我试图跟踪通讯录中的变化。但是方法 NSError err; ABAddressBook iOSAddressBook = ABAddressBook.Create(out err); iOSAddressBook.ExternalChange += (object sender, ExternalChangeEventArgs e) => { Console.WriteLine("qorkkkk"); }; 不起作用。什么不起作用?你有例外吗?没
NSError err;
ABAddressBook iOSAddressBook = ABAddressBook.Create(out err);
iOSAddressBook.ExternalChange += (object sender, ExternalChangeEventArgs e) =>
{
Console.WriteLine("qorkkkk");
};
不起作用。什么不起作用?你有例外吗?没有例外。我启动应用程序,单击主页按钮。在通讯录中,有些东西正在改变。返回应用程序,控制台为空。我有可用的类:ABAddressBookRef、ABAddressBookCreateWithOptions。可能需要导入库?添加,这两个框架如果没有ADD.使用基础;使用通讯录;使用AddressBookUI;此库没有检测本机通讯簿中更改的方法
/*First, Make change in viewDidLoad Method from where you want to change addressbook Record.*/
- (void)viewDidLoad {
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(nil, nil);
ABAddressBookRegisterExternalChangeCallback(addressBook, addressBookChanged, (__bridge void *)(self));
}
//Then,
/*------- method will call when contact updated ------*/
void addressBookChanged(ABAddressBookRef addressBook, CFDictionaryRef info, void *context)
{
@try {
[YourVewControllerObj updateRecord];
// YourViewController *viewController = (__bridge YourViewController*)context;
// [viewController updateRecord];
}
@catch (NSException *exception) {
NSLog(@"%@",exception.description);
}
}
/*------- Method call if make any change in conatct ------*/
+(void)updateRecord
{
NSMutableDictionary *dictPerson= [NSMutableDictionary dictionary];
CFErrorRef error = NULL;
ABAddressBookRef addressBook =ABAddressBookCreateWithOptions(NULL, &error) ;
ABRecordID record = ABRecordGetRecordID(ABRecordRef);
ABRecordRef contactPerson = ABAddressBookGetPersonWithRecordID(addressBook, record);
/*---Here you get your updated Record Refence----*/
//Do your other stuff here
}