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)。
答案 0 :(得分:1)
我认为您正在寻找CoreTelephony框架。有一个Apple sample可以覆盖它。
using block-based event handlers to receive call events and carrier changes.
您需要将代码从ObjectiveC转换为C#(查找 callStateToUser )。