Monotouch Телефон / Состояние вызова? - PullRequest
1 голос
/ 07 сентября 2011

Есть ли какой-нибудь способ в 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) дляпервый звонок и т. д.

1 Ответ

1 голос
/ 07 сентября 2011

Я думаю, вы ищете платформу CoreTelephony. Существует Apple образец , который покрывает его.

using block-based event handlers to receive call events and carrier changes.

Вам нужно будет преобразовать код из ObjectiveC в C # (ищите callStateToUser ).

...