IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    WP8.1开发:获取手机型号和手机唯一ID

    编程小梦发表于 2014-11-23 14:21:01
    love 0

    (困扰俩天的一个socket问题终于被自己解决了,就发篇博文吧)

    windows phone 8.1开发:获取手机型号:

    在有些应用中我们可能希望展示用户的手机型号,比如诺基亚930,830,630,1520等等.我们首先可以通过API获取手机的SystemProductName:

    Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation deviceInfo = new Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation();
                var firmwareVersion = deviceInfo.SystemFirmwareVersion;
    
                string d = "{\"devicename\":\"" + deviceInfo.SystemProductName + "\",\"deviceManufacturer\":\"" + deviceInfo.SystemManufacturer + ";"+deviceInfo.FriendlyName
                        + ";" + deviceInfo.SystemFirmwareVersion + ";" + deviceInfo.SystemHardwareVersion + ";" + deviceInfo.SystemSku + ";"
                        ;
                return d;

    其输出如下:

    {"devicename":"RM-978_1007","deviceManufacturer":"NOKIA;WP 8.1 KKS;01061.00066.14235.36002;3.0.4.;NOKIA RM-978_1007;

    为了实验,我输出多个属性.但我们可能用到的应该只有SystemProductName 属性.但大家会发现,我的手机630显示的手机名称是RM-978_1007.所以我们还需要在转化一步:

    转化的文档:https://github.com/ailon/PhoneNameResolver/blob/master/PhoneNameResolver.cs

    // Lumia 505
                { "LUMIA 505", new CanonicalPhoneName() { CanonicalModel = "Lumia 505" } },
                // Lumia 510
                { "LUMIA 510", new CanonicalPhoneName() { CanonicalModel = "Lumia 510" } },
                { "NOKIA 510", new CanonicalPhoneName() { CanonicalModel = "Lumia 510" } },
                // Lumia 610
                { "LUMIA 610", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } },
                { "LUMIA 610 NFC", new CanonicalPhoneName() { CanonicalModel = "Lumia 610", Comments = "NFC" } },
                { "NOKIA 610", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } },
                { "NOKIA 610C", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } },
                // Lumia 620
                { "LUMIA 620", new CanonicalPhoneName() { CanonicalModel = "Lumia 620" } },
                { "RM-846", new CanonicalPhoneName() { CanonicalModel = "Lumia 620" } },
                // Lumia 710
                { "LUMIA 710", new CanonicalPhoneName() { CanonicalModel = "Lumia 710" } },
                { "NOKIA 710", new CanonicalPhoneName() { CanonicalModel = "Lumia 710" } },
                // Lumia 800
                { "LUMIA 800", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } },
                { "LUMIA 800C", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } },
                { "NOKIA 800", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } },
                { "NOKIA 800C", new CanonicalPhoneName() { CanonicalModel = "Lumia 800", Comments = "China" } },
                // Lumia 810
                { "RM-878", new CanonicalPhoneName() { CanonicalModel = "Lumia 810" } },
                // Lumia 820
                { "RM-824", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } },
                { "RM-825", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } },
                { "RM-826", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } },
                // Lumia 822
                { "RM-845", new CanonicalPhoneName() { CanonicalModel = "Lumia 822", Comments = "Verizon" } },
                // Lumia 900
                { "LUMIA 900", new CanonicalPhoneName() { CanonicalModel = "Lumia 900" } },
                { "NOKIA 900", new CanonicalPhoneName() { CanonicalModel = "Lumia 900" } },
                // Lumia 920
                { "RM-820", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
                { "RM-821", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
                { "RM-822", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
                { "RM-867", new CanonicalPhoneName() { CanonicalModel = "Lumia 920", Comments = "920T" } },
                { "NOKIA 920", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
                { "LUMIA 920", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
                // Lumia 520
                { "RM-914", new CanonicalPhoneName() { CanonicalModel = "Lumia 520" } },
                { "RM-915", new CanonicalPhoneName() { CanonicalModel = "Lumia 520" } },
                { "RM-913", new CanonicalPhoneName() { CanonicalModel = "Lumia 520", Comments="520T" } },
                // Lumia 521?
                { "RM-917", new CanonicalPhoneName() { CanonicalModel = "Lumia 521", Comments="T-Mobile 520" } },
                // Lumia 720
                { "RM-885", new CanonicalPhoneName() { CanonicalModel = "Lumia 720" } },
                { "RM-887", new CanonicalPhoneName() { CanonicalModel = "Lumia 720", Comments="China 720T" } },
                // Lumia 928
                { "RM-860", new CanonicalPhoneName() { CanonicalModel = "Lumia 928" } },
                // Lumia 925
                { "RM-892", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } },
                { "RM-893", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } },
                { "RM-910", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } },
                { "RM-955", new CanonicalPhoneName() { CanonicalModel = "Lumia 925", Comments="China 925T" } },
                // Lumia 1020
                { "RM-875", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } },
                { "RM-876", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } },
                { "RM-877", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } },
                // Lumia 625
                { "RM-941", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } },
                { "RM-942", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } },
                { "RM-943", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } },
                // Lumia 1520
                { "RM-937", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520" } },
                { "RM-938", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520", Comments="AT&T;" } },
                { "RM-939", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520" } },
                { "RM-940", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520", Comments="AT&T;" } },
                // Lumia 525
                { "RM-998", new CanonicalPhoneName() { CanonicalModel = "Lumia 525" } },
                // Lumia 1320
                { "RM-994", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } },
                { "RM-995", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } },
                { "RM-996", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } },
                // Lumia Icon
                { "RM-927", new CanonicalPhoneName() { CanonicalModel = "Lumia Icon", Comments="Verizon" } },
                // Lumia 630
                { "RM-976", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
                { "RM-977", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
                { "RM-978", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
                { "RM-979", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
                // Lumia 635
                { "RM-974", new CanonicalPhoneName() { CanonicalModel = "Lumia 635" } },
                { "RM-975", new CanonicalPhoneName() { CanonicalModel = "Lumia 635" } },
                // Lumia 526
                { "RM-997", new CanonicalPhoneName() { CanonicalModel = "Lumia 526", Comments="China Mobile" } },
                // Lumia 930
                { "RM-1045", new CanonicalPhoneName() { CanonicalModel = "Lumia 930" } },
                // Lumia 636
                { "RM-1027", new CanonicalPhoneName() { CanonicalModel = "Lumia 636", Comments="China" } },
                // Lumia 638
                { "RM-1010", new CanonicalPhoneName() { CanonicalModel = "Lumia 638", Comments="China" } },
                // Lumia 530
                { "RM-1017", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Single SIM" } },
                { "RM-1018", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Single SIM" } },
                { "RM-1019", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Dual SIM" } },
                { "RM-1020", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Dual SIM"

    大家可以根据这个文档进行转化.

    windows phone 8.1开发:获取手机唯一ID:

    获取手机ID在社交应用中比较常用,比如可以禁止同一手机注册俩个ID等等.

    HardwareToken token = HardwareIdentification.GetPackageSpecificToken(null);
                IBuffer hardwareId = token.Id;
    
                HashAlgorithmProvider hasher = HashAlgorithmProvider.OpenAlgorithm("MD5");
                IBuffer hashed = hasher.HashData(hardwareId);
    
                string hashedString = CryptographicBuffer.EncodeToHexString(hashed);
                return hashedString;

    如果小梦的文章对你有帮助!欢迎支持小梦!



沪ICP备19023445号-2号
友情链接