2011-09-07 6 views
1

Monotouch에서 전화 또는 발신자 서비스의 현재 상태를 읽을 방법이 있습니까? 통화가 활성 또는 전화 아무것도를 설정하지 않은이에 인터넷 검색을 보류 등Monotouch 전화/통화 상태?

에있는 경우 읽을 수있는 방법을 찾기 위해 노력

임.

는 같은 일부 코드를 실행하는 데보고 있었다 :

내 솔루션
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

Anders, StackOverflow에서 솔루션을 찾는 다른 사람들을 위해 자신의 게시물에 자신의 질문에 대답 할 수 있습니까? –

+0

좋아, 내가 일하러 돌아올 때 내 솔루션을 게시! – Anders

답변

1

당신은 CoreTelephony 프레임 워크를 찾고 있다고 생각합니다. Apple sample이 있습니다.

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

당신은 C#을 (에 대한 callStateToUser를 볼)에 오브젝티브 -c의 코드를 변환해야합니다.

+0

이것은 유망 해 보입니다. 내 Objective C 기술은 쓰레기 같아요. 내가 관리 할 것 같아요. 내일이면 넘어갈 것이고, 휴대용이라면 답을 올바르게 표시 할 것입니다. – Anders

+0

샘플을 포팅 할 필요가 없습니다. 사용되는 API 이름과 MonoTouch 문서를 보는 것 외에도 많은 ObjectiveC를 알고 있습니다. http://docs.go-mono.com/index.aspx?link=N%3AMonoTouch.CoreTelephony - 테스트 할 iPhone이 없지만 CTCallCenter를 사용하여 CallEventHandler를 (C#)로 설정 한 것 같습니다. CTCall State 속성을 위임하고보고 (값을 추적합니다). – poupou

+0

임 작동을 시도하지만 지금까지 볼 수 있듯이 휴대용이 아닙니다. /. 나는 CTCallCenter의 인스턴스를 만들지 만, CurrentCalls를 가져 오려고하면 항상 null로 나타난다. 그리고 callevantandler도 정의 할 수 없어요. 그냥 충돌합니다. – Anders