0

ActiveSync クライアント アプリケーションを構築しようとしています。Hotmail のテスト アカウントを持っています。このアカウントには過去 6 か月間のメールがあり、そのほとんどが未読です。Hotmail は ActiveSync v2.5 を使用します。同期コマンドを試しましたが、新しいメールしか取得できず、古い (> 3 か月) メールは表示されません!

何か足りないのですか、それともこれがどのように機能するのですか?

[編集: より明確にするためにリクエストとレスポンスの Xml を含める]

最初のリクエスト:

<?xml version="1.0" ?>
<Sync xmlns="AirSync:">
    <Collections>
        <Collection>
            <Class>Email</Class>
            <SyncKey>0</SyncKey>
            <CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
            <WindowSize>512</WindowSize>
        </Collection>
    </Collections>
</Sync>

応答:

<?xml version="1.0" encoding="UTF-8" ?>
<Sync xmlns="AirSync">
    <Collections>
        <Collection>
            <Class>Email</Class>
            <SyncKey>000000000{813672f0-cc63-4308-9a33-4e8c1d0f351e}0</SyncKey>
            <CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
            <Status>1</Status>
        </Collection>
    </Collections>
</Sync>

リクエスト:

<?xml version="1.0" ?>
<Sync xmlns="AirSync:">
    <Collections>
        <Collection>
            <Class>Email</Class>
            <SyncKey>000000000{813672f0-cc63-4308-9a33-4e8c1d0f351e}0</SyncKey>
            <CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
            <GetChanges />
            <WindowSize>512</WindowSize>
        </Collection>
    </Collections>
</Sync>

応答:

<?xml version="1.0" encoding="UTF-8" ?>
<Sync xmlns="AirSync">
    <Collections>
        <Collection>
            <Class>Email</Class>
            <SyncKey>000000000{13704907-A726-4149-8186-E3EEE98D9918}1</SyncKey>
            <CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
            <Status>1</Status>
            <Commands>
                <Add>[Contains email details]</Add>
            </Commands>
        </Collection>
    </Collections>
</Sync>

また、同じコードは GMail アカウント (ActiveSync v12.0 を使用) に対してもうまく機能します。

4

2 に答える 2

1

どうやら、Hotmail サーバーはデバイスによって応答が異なるようです。サーバーに送信された User-Agent 値を Apple-iPhone/705.18 に変更したところ、機能し始めました!

于 2011-10-13T06:03:20.730 に答える
0

FilterType返されるオブジェクトの範囲を制限する要素を渡していないことを確認してください。

次に、サーバーからすべてのオブジェクトをまだ受信していないことを示すSync 応答MoreAvailableの要素を監視します。

[コメントに基づいて編集]

于 2011-10-12T11:59:12.163 に答える