2015年7月9日木曜日

Win10 UWP でのデバイスベンダ名・モデル名の取得

[2016/01/11追記] その後このEasClientDeviceInformation、めでたくUniversalApiContractに復帰したようです。最新のドキュメントにはそう書いてあり、Desktop・Mobile実機両方で動作を確認できました。
以下は2015年7月当時の文章です。


-----


StoreAppでデバイスのベンダ・モデル名を取得する場合、Win8.1/WP8.1 までは"EasClientDeviceInformation" Classを使う事ができました。

EasClientDeviceInformation class
https://msdn.microsoft.com/en-US/library/windows/apps/windows.security.exchangeactivesyncprovisioning.easclientdeviceinformation.aspx

ところが…Win10 UWPになると、このNamespaceはUniversalApiContract…UWP Appなら誰でも使えるAPI、では無く、「Desktop」デバイスファミリ…つまりPC・タブ等の所謂PC系でしか使えなくなってしまいました。電話はどうすれば。

※4月くらいのSDKではUniversalApiContractに含まれてたと思うんですけどね。いつのまにかお引越ししてしまった。

うそーん

困ったナーとMSDN Forumを見ていたら、何か凄い方法で取得しているというPostがありました。HALのPnpObjectからDeviceClassのUUIDで舐めて無理くり取得するという。すげえ。

SystemInfoHelper.cs
https://gist.github.com/HamGuy/8294463

以下、手持ちのデバイスで取得してみた例です。ちゃんと取得できているようです。


ThinkPad X200 / Win10 / UWP Appでの取得例

ONDA V891w / Win10 / UWP Appでの取得例

SurfaceRT / Windows RT 8.1 / Win8.1 StoreAppでの取得例

MADOSMA / WP8.1 / WP8.1 StoreApp での取得例

Lumia520 / Win10 Mobile / UWP Appでの取得例


Lumia520 / Win10 Mobile / WP8.1 StoreAppでの取得例

0 件のコメント:

コメントを投稿