UWP で廃止された UserInformation クラスについて

今更ですが、Windows 10 の UWP アプリで、Windows 8.1 のストア アプリとの比較で廃止予定の API があることに気が付きました。そのクラスは、以下になります。

  • UserInformation クラス
    Windows 8.1 までで使用できたクラスで、Windows 10 では正常に動作しなくなっています。
  • User クラス
    Windows 10 の UWP より提供された新しいクラスで、UserInformation を使用していた場合は置き換える必要があります。

この変更の背景ですが、Windows 10 ではプライバシー設定に新しく「アカウント情報」が追加されています。
PrivacySettings
このアカウント情報には、User クラスを使ってアカウント情報へアクセスするアプリに許可を与える操作(ダイアログが表示されます)を行ったアプリが表示されます。また、User クラスを使用するアプリの場合は、Package.Appxmanifest の機能で「アカウント情報」を指定しておく必要があります。

プライバシー設定に「アカウント情報」が追加されたことにより、Windows 8.1 までのアプリの動作に影響を与えてしまいます。Windows 8.1 までは、UserInformation クラスを使ったアカウント情報へのアクセスが自由にできるようになっていました。というのは、プライバシー設定で「アカウント情報」という分類がなかったからです。Windows 10 では、「アカウント情報」が新設されたことにより、Windows 8.1 までのアプリは UserInformation クラスの GetDisplayNameAsync メソッドなどが値を返さなくなります。この問題を避けるには、アプリを UWP に作り替えるしか方法がありません。 なぜなら、Package.Appxmanifest の機能で「アカウント情報」を指定できるのが UWP しかないということと Windows 10 SDK を使用しないと新しい User クラスへアクセスすることができないからです。

User クラスへアクセスするサンプルは、SDK サンプルとして公開されています。

もし、API の非互換情報に気が付きましたら、コメント欄にでも記入をお願いします。

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。