欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

在电脑中激活、获取Windows Phone和模拟器的信息

程序员文章站 2023-04-01 21:02:53
对于正确安装后的windows phone 7的sdk,在datastoremanager类型中查询的平台和设备应该是这样的。 === 平台 === windows phone 7 === 设备 =...

对于正确安装后的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