当前位置:编程学习 > wap >>

在电脑中激活、获取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模拟器会运行:
 image
 
另外通过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

补充:移动开发 , Windows Phone ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,