ハードウェアの変更やアプリの再インストールなどで変更されない、Windows Phone 8(WP8)で読み取ることができる一意のデバイスID(UDID)または同様のIDはありますか?
古いバージョンのWindowsPhoneには、次のようなIDがありました。WP7:WindowsPhoneのデバイスステータス
WP7.1:DeviceStatusクラス
ただし、SDK8.0では機能しなくなりました。
質問する理由: ユーザーはアプリの最初の起動時に無料クレジットを取得するという考えであり、ユーザーが新しい無料クレジットを取得するためにアプリを再インストールするだけでは避けたいと考えています。電子メールまたは電話番号で登録することでこれを解決できますが、可能であれば、最初に登録を開始するときにユーザーに迷惑をかけたくありません。
- -/// - -解決 - - - - -
DeviceExtendedProperties.GetValue( "DeviceUniqueId")がWP8.0でも機能することを確認できます。次のテキストを読んだときに少し混乱しました。
Windows Phone OS 7.0では、このクラスはデバイス固有のプロパティを照会するために使用されていました。Windows Phone OS 7.1では、DeviceExtendedPropertiesのほとんどのプロパティが非推奨になり、代わりに新しいDeviceStatusクラスを使用する必要があります。ただし、必要に応じて、非推奨ではない以下のプロパティのいずれかを引き続き使用できます。
MSDN:DeviceExtendedPropertiesクラス
次のコードを実行し、アプリを削除して再インストールし、同じIDを取得できます。
byte[] myDeviceID = (byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId");
string DeviceIDAsString = Convert.ToBase64String(myDeviceID);
MessageBox.Show(DeviceIDAsString);