Xamarin ガイドに従って、Call Directory Extension を作成することで、電話番号をブロックしたり、発信者 ID を表示したりできる iPhone アプリを作成しています。
Xamarin のドキュメントのコードは完全には更新されていませんが、OS X 用の Xamarin Studio で Call Directory Extension を作成するだけで、いくつかのサンプル コードを取得して作業を開始できます。
以下は、電話番号 22334455 をブロックする最も簡単なコードです。
[Register("CallDirectoryHandler")]
public class CallDirectoryHandler : CXCallDirectoryProvider, ICXCallDirectoryExtensionContextDelegate
{
protected CallDirectoryHandler(IntPtr handle) : base(handle) { }
public override void BeginRequestWithExtensionContext(NSExtensionContext context)
{
var cxContext = (CXCallDirectoryExtensionContext)context;
cxContext.Delegate = this;
cxContext.AddBlockingEntry(22334455);
//cxContext.AddIdentificationEntry(22334455, "Telemarketer");
cxContext.CompleteRequest(null);
}
public void RequestFailed(CXCallDirectoryExtensionContext extensionContext, NSError error) { }
}
サンプル コードから、同じ番号の発信者 ID を表示するのと同じくらい簡単なように思えます。AddBlockingEntry の代わりに AddIdentificationEntry メソッドを使用するだけですが、うまくいきません。
私は何が欠けていますか?