読者です 読者をやめる 読者になる 読者になる

熊小屋日誌

Windows 10 UWPやXamarin, Python、mbed/NetMF/Arduino/Edison, Azureなどぼちぼちと。たまにPCや勉強会、セミナーなどの話題も

Windows Phone 8とRoaming

Windows Phone 8は、Windows 8と一部のAPIが共通なので、 Windows Phone SDKが公開される前から期待してた機能がありました。 しかし、公開されたAPIリファレンスを見て、 その期待があっという間に崩れ去った…それは、ローミング機能。

Windows 8ストアアプリでは、複数のPC・スレート間でアプリケーションの情報を共有して、 状態を同期させることができます。これはローミング機能と呼ばれて、 例えば、デスクトップPCで読みかけの電子書籍を、外に持ち出したスレートPCで続きを読むってことができる訳です。

このWindows 8ストアアプリのローミング機能は、

:::C#
Windows.Storage.ApplicationData.Current.RoamingSettings.Values[“LastPage”] = 10;

のようにWindows.Storage.ApplicationDataクラスを経由して、 ローミングしたい設定値を登録することで自動的に実行されます。

それで、Windows Phone 8 SDKが公開されて、このApplicationDataクラスが存在するか調べたら…

ApplicationData.RoamingSettings | roamingSettings property (Windows)

[/images/201212/image_thumb_7.png]

おおっ!サポートされている電話機にWindows Phone 8があるではないか!

ところが、本文をよく読むと、Remarksのところに一言こんな記述が。

[/images/201212/image_thumb_8.png]

Windows Phone 8APIは実装されていません。呼ばれたら例外を投げます」

… orz

サポートされてる電話機だけど、実装してないってのはないですよね…

結局、Windows Phone 8ではローミング機能は使えないと判ったのですが、 冷静に考えるとWindowsストアアプリとWindows Phoneアプリは別物で 相互にローミングできる訳ではないですし、複数Windows Phone端末を 持っていてその間でローミングしたいって需要はそう大きくないので、 実装されていなくてもおかしくはないのかもしれません。

アプリをWindowsストアアプリとWindows Phoneアプリの両方にリリースして、 相互にアプリケーションの状態を同期させたい需要はあると思いますが、 現時点ではSkyDriveを経由して自前で同期させるしかなさそうです。