![移动开发 Mobile](http://images.cnblogs.com/cnblogs_com/longqi293/150288/o_WM.jpg)
如何抓出目前是否与 ActiveSync 连线状态,比如有连线就等于 True,没连线就等于 False,我试过 ActiveSyncStatus.Synchronizing 以SystemState.ActiveSyncStatus,似乎都不是可以判断 PDA 是否有与 ActiveSync 连线
使用 SystemState.CradlePresent 属性,就可以准确的判断设备与PC的连接状态。
问题来自 MSDN Forums : ActiveSync 连线状态
简述如下
如何抓出目前是否与 ActiveSync 连线状态,比如有连线就等于 True,没连线就等于 False
我试过 ActiveSyncStatus.Synchronizing 以及 SystemState.ActiveSyncStatus
似乎都不是可以判断 PDA 是否有与 ActiveSync 连线
解决办法:
使用 SystemState.CradlePresent 属性: Gets a value indicating whether the device is connected to a cradle.
使用时需将 Microsoft.WindowsMobile、Microsoft.WindowsMobile.Status 加入引用
代码
以下代码是当 Button Click 时,取得并显示 SystemState.CradlePresent 属性 的状态
![](/Images/OutliningIndicators/ContractedBlock.gif)
button1_Click
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.WindowsMobile.Status;
namespace SmartDeviceProject7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// SystemState.CradlePresent : Gets a value indicating whether the device is connected to a cradle.
textBox1.Text = SystemState.CradlePresent.ToString();
// 未连线时显示 False
// 连线时显示 True
}
}
}
以下代码是当 System Status 改变时,取得并显示 SystemState.CradlePresent 属性 的状态
![](/Images/OutliningIndicators/ContractedBlock.gif)
mSystemState_Changed
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.WindowsMobile.Status;
namespace SmartDeviceProject7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SystemState mSystemState;
// 当状态改变时触发事件
void mSystemState_Changed(object sender, ChangeEventArgs args)
{
// SystemState.CradlePresent : Gets a value indicating whether the device is connected to a cradle.
textBox1.Text = SystemState.CradlePresent.ToString();
// 未连线时显示 False
// 连线时显示 True
}
private void Form1_Load(object sender, EventArgs e)
{
// 加入事件
mSystemState = new SystemState(SystemProperty.CradlePresent);
mSystemState.Changed += new ChangeEventHandler(mSystemState_Changed);
mSystemState_Changed(null, null);
}
}
}
文章引用:
SystemState.CradlePresent 屬性
How to Get Activesync Status in Smart Device