如何在Windows Phone 8上获得wp7风格的ANID ?
本文关键字:wp7 风格 ANID Windows Phone | 更新日期: 2023-09-27 17:52:53
我有一个Windows Phone 7应用程序,它依赖于ANID在远程服务器上存储用户数据。现在我正在准备它的Windows Phone 8版本。当用户下载此更新之前的WP7应用程序版本将被这个新的WP8版本所取代。
但是有一个巨大的问题:在WP8中有ANID2而不是ANID。我知道如何将ANID转换为ANID2 (Windows Phone ANID到ANID2在c#上的转换?)。但我需要整个ANID。在WP7中,ANID看起来像:"A= 2e23acf364795673cd7ebb58ffffffffff &E=f48&W=3"。我提取32个字符的值(2E23ACF364795673CD7EBB58FFFFFFFF)并将其用作UID(我听说剩余部分可能会更改,但32个id将始终相同)。
所以我可能会将ANID从WP7版本转换为远程服务器上的ANID2,但我没有全部44个字母-只有32个。
我可能会用另一个WP7版本更新WP7版本,它将整个ANID发送到服务器,但我不能依赖于所有人都会更新他们的应用程序,将数据保存到服务器,然后在wp8版本可用时再次更新他们的应用程序。
我的问题是:
-
是否有办法在WP8应用程序中获得wp7风格的ANID值(可能通过反射或c++)?
-
是否可以将ANID转换为ANID2,只有其32个字符的uid部分?
-
是否有办法找出特定的ANID2是否对应于现有的32个字符的ANID部分?
-
如果我们知道开发者GUID,我如何将ANID2反向转换为ANID ?
-
用户可以选择要安装的版本(如果有WP7和WP8版本)吗?
到目前为止,我的解决方案是给wp8版本的wp7实用工具的用户,它从ANID生成ANID2并将这对存储到远程数据库。然后获得wp8版本更新的用户可以继续使用他的wp7应用程序配置文件。虽然我仍在寻找更好的解决方案。
顺便说一句,我刚刚意识到:当我们试图遵循微软的"一个屏幕"的理念,并试图让我们的用户访问他们的所有微软设备上的数据一次,这真的是愚蠢的,微软让我们保持并以某种方式同步三个(!!)不同的id为一个用户登录他的wp7, wp8和windows 8设备与相同的实时id!微软不希望我们过多地看到这个实时id,所以给了我们三种不同的匿名表示。可笑的人!
唯一的方法是在问题中描述:在wp8版本的主应用程序中发布隐藏的实用程序链接。实用程序本身是一个wp7二进制文件,可以访问ANID,使用dev GUID可以生成ANID2。它将两个值发送到服务器,当用户携带ANID2时,服务器检查字典并找到相应的ANID。不是那么简单,但是很容易。
我会使用我在第一次启动应用程序时创建的GUID,将其存储在独立的存储中并使用它。它不会包括卸载/重新安装场景,但无论如何这是一个真正的小百分比。
顺便说一句,用户只能从商店获得最新版本,所以他/她不能选择旧版本(WP7手机当然只能获得WP7版本,但wp8用户总是会从商店获得最新版本)
这可能听起来有点天真,也许你已经想到了,是的,这只是你的核心问题的答案,windows phone 8应用程序是否有可能单独指向ANID2实现,也许是另一个远程端点,直到MS自己杀死早期(WP7)平台:)