当前位置:首 页 > 攻城湿 >Windows Phone > 查看文章

在进行Windows Phone开发的过程中,我们会需要获取手机的一些相关信息,如下列出如何获取手机的一些常用信息和用户信息。

只需要使用Microsoft.Phone.Info命名空间下的UserExtendedProperties类和DeviceExtendedProperties类对应的成员函数就可以了。

一.设备屏幕信息

double width = Application.Current.Host.Content.ActualWidth;
double heigth = Application.Current.Host.Content.ActualHeight;

二.设备信息相关(Microsoft.Phone.Info)
1.设备厂商

string DeviceManufacturer = DeviceStatus.DeviceManufacturer;

2.设备名称

string DeviceName = DeviceStatus.DeviceName;

3.设备ID

byte[] result = null;
object uniqueId;
if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))
{
  result = (byte[])uniqueId;
}

//转换设备ID为字符串

string DeviceUniqueId = Convert.ToBase64String(result);

4.固件版本

string DeviceFirmwareVersion = DeviceStatus.DeviceFirmwareVersion;

5.硬件版本

string DeviceHardwareVersion = DeviceStatus.DeviceHardwareVersion;

6.总内存
  

long DeviceTotalMemory = DeviceStatus.DeviceTotalMemory;

7.应用程序当前使用内存

long ApplicationCurrentMemoryUsage = DeviceStatus.ApplicationCurrentMemoryUsage;

8.应用程序使用内存峰值

long ApplicationPeakMemoryUsage = DeviceStatus.ApplicationPeakMemoryUsage;

9.操作系统版本

String osversion= System.Environment.OSVersion.Version.ToString();

可用属性

ApplicationCurrentMemoryUsage

一个长整型值。

当前应用程序的内存使用量,以字节为单位。

此属性已被弃用。请改用 ApplicationCurrentMemoryUsage 属性。

ApplicationPeakMemoryUsage

一个长整型值。

当前应用程序的高峰内存使用量,以字节为单位。

此属性已被弃用。请改用 ApplicationPeakMemoryUsage 属性。

ApplicationWorkingSetLimit

一个长整型值。

工作集限制(以字节为单位)。

此属性应用于 Windows Phone OS 7.1 及更高版本。

DeviceFirmwareVersion

一个字符串。

设备上运行的固件版本。该版本与可使用 System.Environment 检索的操作系统版本不同。建议该值为可以以 System.Version 结构的形式进行分析的字符串,并且当安装新固件时,该字符串按逻辑方式递增,但这不是必需的。该值可以为空。

此属性已被弃用。请改用 DeviceFirmwareVersion 属性。

DeviceHardwareVersion

一个字符串。

设备上运行的硬件版本。该版本与可使用 System.Environment 检索的操作系统版本不同。建议该值为可以以 System.Version 结构的形式进行分析的字符串,并且当发布新硬件时,该字符串按逻辑方式递增,但这不是必需的。该值可以为空。

此属性已被弃用。请改用 DeviceHardwareVersion 属性。

DeviceManufacturer

一个字符串。最多 256 个字符。

设备制造商的名称。该字符串没有标准格式。建议对同一制造商的设备使用相同的值,但不强制这样做。该值可以为空。

此属性已被弃用。请改用 DeviceManufacturer 属性。

DeviceName

一个字符串。最多 256 个字符。

设备的名称。该字符串没有标准格式。该值可以为空。

此属性已被弃用。请改用 DeviceName 属性。

DeviceTotalMemory

一个长整型值。

设备的物理 RAM 大小,以字节为单位。该值将小于设备内存的实际数量,但可以用于确定内存占用要求。

此属性已被弃用。请改用 DeviceTotalMemory 属性。

DeviceUniqueId

字节数组。长度为 20 个字节。

设备的唯一哈希。对于所有应用程序,该值都将保持不变,并且如果用新版本的操作系统更新手机也不会更改。应用程序不应使用该值来标识用户,因为即使设备的所有权发生了转移,设备 ID 也将保持不变。

IsApplicationPreinstalled

布尔值。

指示该应用是否与设备图像一起进行预安装。从 Windows Phone 商店 下载的应用将总是返回值 false。

OriginalMobileOperatorName

一个字符串。

一个字符串代表移动运营商的名称。

三.用户信息
使用UserExtendedProperties类的GetValue和TryGetValue方法即可。目前这两个函数的入参,都只支持“ANID”。

GetValue用法如下:

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

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

TryGetValue用法如下:

object anid = new object(); 

string anonymousUserId = "";

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

{

    anonymousUserId = anid as string;

    anonymousUserId = anonymousUserId.Substring(2, 32);

}

需要注意的是,如果你的WP7手机没有绑定Live ID,GetValue返回的字符串为null,TryGetValue返回的对象也为null。因此在项目中要注意对返回字符串和对象的非空判断。

四.网络状态
1. 获取网络是否可用

bool flag = Microsoft.Phone.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();

2. 获取当前手机联网类型

Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType

Wireless80211是wifi
None是没有网络连接
MobileBroadbandGsm是gsm 2g网络连接
MobileBroadbandCdma 是CDMA 联通3g
Ethernet – 连接到电脑上网

3. 获取当前是否开启网络连接

bool flag = Microsoft.Phone.Net.NetworkInformation.DeviceNetworkInformation.IsNetworkAvailable;

4. 获取是否开启wifi

bool flag = Microsoft.Phone.Net.NetworkInformation.DeviceNetworkInformation.IsWiFiEnabled;
这家伙很懒,什么都没写!

—— zhaorong

zhaorong
你可能也喜欢Related Posts
众说纷纭Comments
大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头
小提示:直接粘贴图片到输入框试试
努力发送中...
  1. 1 楼

    老妈:这个“I don’t know.”是什么意思?我说:“我不知道”老妈:送你上大学上了几年,你怎么什么都不知道!!我说:不是!就是“我不知道”吗!!老妈:还嘴硬!!!!$@%!#$^&%#$%@$%@#$%!^%^!^%$^#&.(一顿爆揍)老妈:你再给我说说这个,“I know.”什么意思你该知道吧,给我说说。 我说:是“我知道”老妈:知道就快说。我说:就是“我知道”老妈:找茬呀你?刚才收拾你收拾的轻了是不?我说:就是我知道呀!老妈:知道你还不说!!不懂不要装懂!&*$%^@$#!%$@^%#*$^^^##$%(又一顿爆揍)老妈:你给我小心点,花那么多钱送你上大学,搞的现在什么都不会,会那么一丁点东西还跟老娘摆谱,再问你最后一个,你给我好好解释一下,说不出来我再收拾你,你给我翻译一下“I know but I don’t want to tell you.”是什么意思?我晕倒,拿起枕头往头上爆砸三十几下,用头撞墙四十多下,双手轮番抽自己嘴巴五十多下,用腿踢桌子角六十多下,血肉模糊之时,我问老妈:这下你满意吧。这不她老人家又来问我了:“儿啊,I’m very annoyance,don`t tuouble me”是什么意思啊~?我说:“我很烦,别烦我”老妈:“找打,跟**这么说话”(于是被扁)老妈又问:“I hear nothing,repeat. 是what意思啊?我说:“我没听清,再说一次”老妈又说了一遍:I hear nothing,repeat“我说:“我没听清,再说一次”结果被扁 老妈再问:“what do you say ”又怎么解释呢?我说:“你说什么“(再次被扁)老妈再问:“look up in the dictionary”是何意啊?我说:“查字典”“查字典我还问你做甚”(被扁)老妈又问:you had better ask some body.怎么翻呢?我说:“你最好问别人”“你是我儿子,我问别人干吗,又找打,我再问你:“use you head,then think it over”,又是什么意思啊!我说:“动动脑子,再仔细想想”“臭小子,还敢耍我”接着又要动手。我连忙说:“是世上只有妈妈好的意思”“嗯,这还差不多,一会我给你做好吃的,明天再问你”转吧!让大家开心一下啦招女友

    2014年01月18日 08:52:09 回复 取消回复
  • 评论最多
  • 最新评论
  • 随机文章
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容
Copyright © zhaorong All Rights Reserved. 滇ICP备15006105号-1