西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識(shí) → Windows Phone 7手機(jī)編程獲取手機(jī)的用戶信息和設(shè)備信息

Windows Phone 7手機(jī)編程獲取手機(jī)的用戶信息和設(shè)備信息

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:本站整理時(shí)間:2011/1/24 23:09:34字體大。A-A+

作者:佚名點(diǎn)擊:250次評(píng)論:4次標(biāo)簽: WindowsPhone7

  • 類型:電子教程大。11.6M語言:中文 評(píng)分:7.5
  • 標(biāo)簽:
立即下載

在Windows Phone 7中如何獲取用戶信息和設(shè)備信息呢?只需要使用Microsoft.Phone.Info命名空間下的UserExtendedProperties類和DeviceExtendedProperties類對(duì)應(yīng)的成員函數(shù)就可以了。具體怎樣操作?請(qǐng)看正文。

獲取用戶信息

使用UserExtendedProperties類的GetValue和TryGetValue方法即可。目前這兩個(gè)函數(shù)的入?yún),都只支持“ANID”。

GetValue用法如下:

1 string anid = UserExtendedProperties.GetValue("ANID") as string;

2 string anonymousUserId = anid.Substring(2, 32);

TryGetValue用法如下:

view sourceprint?1 object anid = new object();

2 string anonymousUserId = "";

3 if (UserExtendedProperties.TryGetValue("ANID", out anid))

4 {

5 anonymousUserId = anid as string;

6 anonymousUserId = anonymousUserId.Substring(2, 32);

7 }

需要注意的是,如果你的WP7手機(jī)沒有綁定Live ID,GetValue返回的字符串為null,TryGetValue返回的對(duì)象也為null。因此在項(xiàng)目中要注意對(duì)返回字符串和對(duì)象的非空判斷。

獲取設(shè)備信息

與獲取用戶信息相似,使用DeviceExtendedProperties類的GetValue和TryGetValue方法,這兩個(gè)方法的使用方式也與上面相同,不同的是入?yún)。Windows Phone 7可以獲取的設(shè)備信息如下:

屬性名稱 值類型 描述 補(bǔ)充說明
DeviceManufacturer
字符串
(最大長(zhǎng)度256) 設(shè)備的生產(chǎn)廠商。該字符串沒有標(biāo)準(zhǔn)格式。微軟建議同一個(gè)廠商生產(chǎn)的手機(jī)使用相同的字符串,但這不是強(qiáng)制的。 注意,該值也可能為空
DeviceName 字符串
(最大長(zhǎng)度256) 設(shè)備名稱。該字符串沒有標(biāo)準(zhǔn)格式。 注意,該值也可能為空
DeviceUniqueId
長(zhǎng)度為20的byte數(shù)組 設(shè)備的唯一標(biāo)識(shí)。該值是唯一不變的,即使系統(tǒng)升級(jí)。 注意,不要使用該值來標(biāo)識(shí)用戶,因?yàn)橛脩艨赡芸梢愿鼡Q手機(jī),同一手機(jī)也有可能被不同用戶使用
DeviceFirmwareVersion 一個(gè)字符串 當(dāng)前設(shè)備運(yùn)行的固件版本。如果安裝了新版本的固件,該值將會(huì)增長(zhǎng)。 注意,該值也可能為空
DeviceHardwareVersion
一個(gè)字符串 當(dāng)前設(shè)備的硬件版本。 注意,該值也可能為空
DeviceTotalMemory
長(zhǎng)整型 設(shè)備物理內(nèi)存的大小(單位是Byte) 該值通常小于實(shí)際的RAM大小略小,因此可以用它來判斷RAM是否夠用。
ApplicationCurrentMemoryUsage
長(zhǎng)整型 當(dāng)前應(yīng)用程序使用的內(nèi)存(單位是Byte) 可以用它來觀察當(dāng)前應(yīng)用程序消耗內(nèi)存的情況
ApplicationPeakMemoryUsage
長(zhǎng)整型 當(dāng)前應(yīng)用程序泄漏的內(nèi)存(單位是Byte) 可以用它來觀察當(dāng)前應(yīng)用程序內(nèi)存泄漏情況

先來看看獲取設(shè)備廠商的方法:

1 string strDeviceManufacturer = DeviceExtendedProperties.GetValue("DeviceManufacturer").ToString();

其它的設(shè)備信息獲取都與設(shè)備廠商一樣,把GetValue或TryGetValue的參數(shù)換一下就可以了。

有一個(gè)有點(diǎn)不同,就是DeviceUniqueID。有時(shí)候我們就需要保存一個(gè)字符串來標(biāo)識(shí)設(shè)別的唯一性就好了,用Byte數(shù)組有點(diǎn)麻煩,我在這里遍歷了該數(shù)組,把它轉(zhuǎn)為了一個(gè)長(zhǎng)度為60的字符串,代碼如下:

01 byte[] byteArray = DeviceExtendedProperties.GetValue("DeviceUniqueId") as byte[];

02 string strTemp = "";

03 string strDeviceUniqueID = "";

04 foreach (byte b in byteArray)

05 {

06 strTemp = b.ToString();

07 if (1 == strTemp.Length)

08 {

09 strTemp = "00" + strTemp;

10 }

11 else if (2 == strTemp.Length)

12 {

13 strTemp = "0" + strTemp;

14 }

15 strDeviceUniqueID += strTemp;

16 }
1 我在Demo中的界面只放置了幾個(gè)獲取設(shè)備信息的Button和TextBlock,很多都一樣,就沒有都列出來

1 上圖是我在模擬器上運(yùn)行的結(jié)果,無法綁定LiveID,所以用戶信息一項(xiàng)取不到,為空。其它都正常。
1 我在真機(jī)上測(cè)試都可以取到相關(guān)信息。:)
1 為了方便大家使用,我把獲取用戶和設(shè)備信息的代碼封裝到了一個(gè)類中,都是Public的靜態(tài)方法,直接就可以用了。
demo下載

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(4)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)