可以通过SystemProperty.PhoneTalkingCallerNumber属性进行处理,关键代码如下:
public Form1()
{
InitializeComponent();
#region 挂载事件
test = new SystemState(SystemProperty.PhoneTalkingCallerNumber);
test.Changed += new ChangeEventHandler(test_Changed);
#endregion
}
/// <summary>
/// 用SystemProperty.PhoneTalkingCallerNumber可以得到与手机通话的所有电话号码,包括来电及去电
/// </summary>
/// <param name="sender"></param>
/// <param name="args">args.NewValue即为来电/去电电话号码,为Null表示通话结束</param>
void test_Changed(object sender, ChangeEventArgs args)
{
if (args.NewValue != null)
MessageBox.Show(string.Format("TalkingNumber:{0},来电时间:{1}", args.NewValue.ToString(), DateTime.Now.ToLongTimeString()));
else
MessageBox.Show(string.Format("结束时间:{0}", DateTime.Now.ToLongTimeString()));
}
}
有一个小小的疑问,这个 SystemState 变量test若是定义在构造函数public Form1()中,即不响应Changed事件,不知道原因是什么,希望了解的朋友解答一下~~