Есть ли какой-нибудь способ в Monotouch, чтобы прочитать текущее состояние на телефоне или в службе вызова?
Я пытаюсь найти какой-то способ чтения, если звонок активен или звонок удерживается и т. Д.
Поиск в Google ничего не дал.
Требуется запустить какой-нибудь фрагмент кода, например:
if(CallIsActive) {
}
else {
}
Мое решение:
public static class CallHandler
{
private static CTCallCenter ctc;
private static NSSet calls;
public static void StartListening() {
Console.WriteLine ("Callhandler is listening");
ctc = new CTCallCenter ();
calls = ctc.CurrentCalls;
ctc.CallEventHandler = new CTCallEventHandler (delegate(CTCall inCTcall) {
calls = ctc.CurrentCalls;
});
}
public static uint CallCount {
get {
return (calls != null) ? calls.Count : 0;
}
}
public static string GetCallState(int CallID) {
CTCall[] callArr = calls.ToArray<CTCall>();
CTCall call = callArr[CallID];
return call.CallState;
}
}
Запустите CallHandler.CallCount, чтобы получить текущий callcount и GetCallState (0) дляпервый звонок и т. д.