在电脑中激活、获取Windows Phone和模拟器的信息
对于正确安装后的windows phone 7的sdk,在datastoremanager类型中查询的平台和设备应该是这样的。
=== 平台 ===
windows phone 7
=== 设备 ===
windows phone device
windows phone emulator - 512 mb
windows phone emulator - 256 mb
代码是这样的:
//+ using microsoft.smartdevice.connectivity;
var mgr = new datastoremanager(system.globalization.cultureinfo.currentculture.lcid);
console.writeline("=== 平台 ===");
foreach (var platform in mgr.getplatforms())
{
console.writeline(platform.name);
console.writeline("=== 设备 ===");
foreach (var device in platform.getdevices())
console.writeline(device.name);
}
激活设备可以通过device.activate方法,不过前提是已经连接该设备,连接可以通过connect方法。比如我们想要激活512mb的模拟器,那么代码:
//+ using microsoft.smartdevice.connectivity;
var mgr = new datastoremanager(system.globalization.cultureinfo.currentculture.lcid);
foreach (var platform in mgr.getplatforms())
{
foreach (var device in platform.getdevices())
{
try
{
//在名称中查找512字样
if (device.name.contains("512"))
{
//连接
device.connect();
//激活
device.activate();
}
}
catch (exception e)
{
console.writeline(e);
}
}
}
ok,程序运行后,相应的windows phone模拟器会运行:
另外通过device.isenumator方法可以判断目标设备是否是模拟器。
对于获取信息,可以通过device.getsysteminfo方法,可以查询任意device信息,包括模拟器和实际设备。getsysteminfo返回一个systeminfo对象包含诸多选项信息。
拿手机坐下测试,首先将手机连接电脑,接着打开zune。接着调用device.connect连接,然后getsysteminfo。
完整代码:
//+ using microsoft.smartdevice.connectivity;
//+ using system.componentmodel; 用于快速输出所有属性
static void main(string[] args)
{
var mgr = new datastoremanager(system.globalization.cultureinfo.currentculture.lcid);
foreach (var platform in mgr.getplatforms())
{
foreach (var device in platform.getdevices())
{
try
{
//需要windows phone device这个设备,它代表连接的实际设备
if (device.name.contains("device"))
{
//连接
device.connect();
//激活
device.activate();
//输出信息
printproperties(device.getsysteminfo());
}
}
catch (exception e)
{
console.writeline(e);
}
}
}
}
//快速输出所有属性
static void printproperties(object obj)
{
foreach (propertydescriptor descriptor in typedescriptor.getproperties(obj))
{
string name = descriptor.name;
object value = descriptor.getvalue(obj);
console.writeline("{0}: {1}", name, value);
}
}
ok,结果会输出:
osmajor: 7
osminor: 10
osbuildno: 8107
processorarchitecture: arm
instructionset: armv4ifp
numberofprocessors: 1
……
诸多信息呵呵,比如操作版本:7.10.8107,处理器类型:arm,指令集:armv4ifp……
作者:mgen