Windows Phone 硬件检测
private static bool IsWvga
{
get { return App.Current.Host.Content.ScaleFactor == 100; }
}
private static bool IsWxga
{
get { return App.Current.Host.Content.ScaleFactor == 160; }
}
private static bool Is720p
{
get { return App.Current.Host.Content.ScaleFactor == 150; }
}
硬件配置
摄像头(Camera)
#if WINDOWS_PHONE_8 // Windows Phone 8
try
{
BackCameraExist = PhotoCaptureDevice.AvailableSensorLocations.Contains<CameraSensorLocation>(CameraSensorLocation.Back);
FrontCameraExist = PhotoCaptureDevice.AvailableSensorLocations.Contains<CameraSensorLocation>(CameraSensorLocation.Front);
}
catch (System.Exception e)
{
MessageBox.Show(e.Message);
}
#else // Windows Phone 7
FrontCameraExist = Microsoft.Devices.Camera.IsCameraTypeSupported(Microsoft.Devices.CameraType.FrontFacing);
BackCameraExist = Microsoft.Devices.Camera.IsCameraTypeSupported(Microsoft.Devices.CameraType.Primary);
#endif
闪光灯(Flash)
if (BackCameraExist)
{
var cam = new Microsoft.Devices.PhotoCamera(Microsoft.Devices.CameraType.Primary);
BackCameraFlashExist = cam.IsFlashModeSupported(Microsoft.Devices.FlashMode.On);
}
if (FrontCameraExist)
{
var cam = new Microsoft.Devices.PhotoCamera(Microsoft.Devices.CameraType.FrontFacing);
FrontCameraFlashExist = cam.IsFlashModeSupported(Microsoft.Devices.FlashMode.On);
}
罗盘(Compass)
#if WINDOWS_PHONE_8 // Windows Phone 8
if (Compass.GetDefault() != null)
{
CompassExist = true;
}
#else // Windows Phone 7
CompassExist = Microsoft.Devices.Sensors.Compass.IsSupported;
#endif
NFC
#if WINDOWS_PHONE_8 // Windows Phone 8
// ID_CAP_NETWORKING ID_CAP_PROXIMITY
if (ProximityDevice.GetDefault() != null)
{
ProximityExist = true;
}
#else // Windows Phone 7
// Windows Phone 7 不支持NFC功能
#endif
陀螺仪(Gyroscope)
#if WINDOWS_PHONE_8 // Windows Phone 8
// 目前Gyrometer.GetDefault()在陀螺仪不支持时会抛出异常,以MSDN文档描述的返回null不符。
try
{
if (Gyrometer.GetDefault() != null)
{
GyroscopeExist = true;
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
#else // Windows Phone 7
GyroscopeExist = Microsoft.Devices.Sensors.Gyroscope.IsSupported;
#endif
加速传感器(Accelerometer)
#if WINDOWS_PHONE_8 // Windows Phone 8
if (Accelerometer.GetDefault() != null)
{
AccelerometerExist = true;
}
#else // Windows Phone 7
AccelerometerExist = Microsoft.Devices.Sensors.Accelerometer.IsSupported;
#endif
磁倾仪传感器(Inclinometer)
#if WINDOWS_PHONE_8 // Windows Phone 8
if (Windows.Devices.Sensors.Inclinometer.GetDefault() != null)
{
InclinometerExist = true;
}
#else // Windows Phone 7
// Windows Phone 7 不支持
#endif
方向传感器(Orientation)
#if WINDOWS_PHONE_8 // Windows Phone 8
if (Windows.Devices.Sensors.OrientationSensor.GetDefault() != null)
{
OrientationSensorExist = true;
}
#else // Windows Phone 7
OrientationSensorExist = Microsoft.Devices.Sensors.Motion.IsSupported;
#endif
震动设备(VibrationDevice)
#if WINDOWS_PHONE_8 // Windows Phone 8
if (Windows.Phone.Devices.Notification.VibrationDevice.GetDefault() != null)
{
VibrationDeviceExist = true;
}
#else // Windows Phone 7
if (Microsoft.Devices.VibrateController.Default != null)
{
VibrationDeviceExist = true;
}
#endif
电量传感器(Battery)
#if WINDOWS_PHONE_8 // Windows Phone 8
if (Windows.Phone.Devices.Power.Battery.GetDefault() != null)
{
BatterySensorExist = true;
}
#else // Windows Phone 7
// Windows Phone 7 不支持
#endif
SD卡(SD Card)
#if WINDOWS_PHONE_8 // Windows Phone 8
var devices = await ExternalStorage.GetExternalStorageDevicesAsync();
SDCardExist = (devices != null && devices.Count() > 0);
#else // Windows Phone 7
// Windows Phone 7 不支持SD卡
#endif
内存判断(Memory)
#if WINDOWS_PHONE_8 // Windows Phone 8
MemoryCurrentUsed = Windows.Phone.System.Memory.MemoryManager.ProcessCommittedBytes.ToString();
MemoryMaxAvailable = Windows.Phone.System.Memory.MemoryManager.ProcessCommittedLimit.ToString();
#else // Windows Phone 7
// 通过DeviceExtendedProperties类获取
#endif
Windows Phone 应用的功能和硬件要求
在获取设备硬件信息之前,你还 需要在清单文件中标记你的应用需要的功能(CAPABILITIES) 。另外你还 可以在清单文件中指定应用的硬件要求(REQUIREMENTS),以确保只有满足硬件要求的设备才能在应用商店中查看并下载安装你的应用。
要了解应用功能和硬件要求,可以在下面链接查看: http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj206936.aspx
应用清单文件
文件路径:工程目录->Properties->WMAppManifest.xml

应用清单文件设计器(Windows Phone 8)


我们可以通过清单文件设计器来标记应用的功能和硬件要求,但是在设计器中不能够标记全部的功能或硬件要求(比如ID_REQ_MEMORY_300),这时你就需要用“查看代码”的方式打开WMAppManifest.xml文件进行编辑。

示例代码
Windows Phone 硬件检测的更多相关文章
- Windows下如何检测用户修改了系统时间并且把系统时间改回来
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Windows下如何检测用户修改了系统时间并且把系统时间改回来.
- 星语硬件检测专家 V4.3 官方版
软件名称: 星语硬件检测专家 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 15.8MB 图片预览: 软件简介: 星语硬件检测专家是一款功能非常强大的硬件 ...
- 801硬件检测工具DragonHD的使用
801硬件检测工具DragonHD的使用 2018/11/28 13:39 版本:V1.0 开发板:SC3817R 1.客户要认证器件,使用了全志官方的工具:DragonHD.exe 打开之后可以见用 ...
- linux和Windows双系统让 Windows 把硬件时间当作 UTC
linux和Windows双系统让 Windows 把硬件时间当作 UTC Windows设置如下:开 始->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方可有 ...
- DirectX11 With Windows SDK--20 硬件实例化与视锥体裁剪
前言 这一章将了解如何在DirectX 11利用硬件实例化技术高效地绘制重复的物体,以及使用视锥体裁剪技术提前将位于视锥体外的物体进行排除. 在此之前需要额外了解的章节如下: 章节回顾 18 使用Di ...
- windows下脚本检测tomcat是否启动,没有启动则启动
最近有个服务需要部署到windows server2003上面,机房没有windows ser的机器,没办法搞了个阿里云服务,购买的配置比较低, 不知道什么原因,tomcat启动后总是容易自动退出,搞 ...
- USB插入电脑的硬件检测和枚举流程
USB协议定义了设备的6种状态,仅在枚举过程种,设备就经历了4个状态的迁移:上电状态(Powered),默认状态(Default),地址状态(Address)和配置状态(Configured)(其他两 ...
- nagios对windows流量的检测
windows下用于和 nagios 整合监控的方式主要有三种:nsclient++ .nrpe_nt.SNMP.三者各自的特点主要如下: 1.nsclient++比较成熟稳定,文档也丰富,内置很多了 ...
- windows查看硬件信息系统信息
rem 查看cpu wmic cpu list briefrem 查看物理内存wmic memphysical list briefrem 查看逻辑内存wmic memlogical list bri ...
随机推荐
- maven最齐全配置pom.xml
0001<project xmlns="http://maven.apache.org/POM/4.0.0"0002 0003xmlns:xsi="http://w ...
- System.SysUtils.TMarshaller 与 System.TMarshal
转自:http://www.cnblogs.com/del/archive/2013/06/10/3130974.html TMarshaller(结构) 基于 TMarshal(是有一大堆的 cla ...
- JSoup——用Java解析html网页内容
当需要从网页上获取信息时,需要解析html页面.筛选指定标签,并获取其值是必不可少的操作,解析html页面这方面的利器,Python有BeautifulSoup,Java一直没有好的工具,之前的Htm ...
- codeforces A. Vasily the Bear and Triangle 解题报告
题目链接:http://codeforces.com/problemset/problem/336/A 好简单的一条数学题,是8月9日的.比赛中没有做出来,今天看,从pupil变成Newbie了,那个 ...
- Sql server之路 (四)添加本地数据库MDF文件
安装环境 VS2008 Vs2008 Sp1 安装系统 Win8 1.创建窗体 右键添加新项 上一步 上一步 点击确定 双击Database1.mdf文件 在列名出填写字段名 保存 Ctrl+S 点 ...
- laravel框架中Email邮件配置
.在composer.json加入下面一行代码 .发送邮件的Route Route::.项目/app/mail.php <?php , 或 , .发送邮件的类 在控制器文件夹下创建Ema ...
- JAVA 正则表达式、汉字正则、 java正则代码
转自于:http://blog.csdn.net/q326527970/article/details/7513974 (一)字母.数字.下划线.汉字正则表达式 1. 只有字母.数字和下划线且不能以下 ...
- 【现代程序设计】homework-09
1. 了解Lambda的用法 计算“Hello World!”中 a.字母‘e’的个数 b. 字母‘l’的个数 首先: ISO C++ 标准的另一大亮点是引入Lambda表达式.语法如下: [](形参 ...
- C++的那些事:数据与类型
一.前言 最近在看C++Primer第5版,先前已经看过第4版,但是发现第5版在整个知识布局与个别知识的讲解上跟第4版差别还是挺大的,尤其是新增了C++11的内容,正如孟岩老师在第5版前言中所讲:“现 ...
- SqlServer2000数据库字典--表结构.sql
SELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, C ...