我想知道怎么样知道现在设备的平台。请大家帮忙,谢谢……
1条回答 默认 最新
- ce_la_vie 2012-11-27 08:12关注
参考一下
using System; using System.Runtime.InteropServices; using MonoTouch.Foundation; using MonoTouch.UIKit; namespace Playersync_iPhone_v2 { public class DeviceHardware { public const string HardwareProperty = "hw.machine"; public enum HardwareVersion { iPhone, iPhone3G, iPhone3GS, iPhone4, VerizoniPhone4, iPhone4S, iPod1G, iPod2G, iPod3G, iPod4G, iPad, iPad2WIFI, iPad2WIFI24, iPad2GSM, iPad2CDMA, iPad3WIFI, iPad3GSM, iPad3CDMA, iPhoneSimulator, iPhone4Simulator, iPadSimulator, Unknown } [DllImport(MonoTouch.Constants.SystemLibrary)] static internal extern int sysctlbyname([MarshalAs(UnmanagedType.LPStr)] string property, IntPtr output, IntPtr oldLen, IntPtr newp, uint newlen); public static HardwareVersion Version { get { var pLen = Marshal.AllocHGlobal(sizeof(int)); sysctlbyname(DeviceHardware.HardwareProperty, IntPtr.Zero, pLen, IntPtr.Zero, 0); var length = Marshal.ReadInt32(pLen); if (length == 0) { Marshal.FreeHGlobal(pLen); return HardwareVersion.Unknown; } var pStr = Marshal.AllocHGlobal(length); sysctlbyname(DeviceHardware.HardwareProperty, pStr, pLen, IntPtr.Zero, 0); var hardwareStr = Marshal.PtrToStringAnsi(pStr); var ret = HardwareVersion.Unknown; if (hardwareStr == "iPhone1,1") ret = HardwareVersion.iPhone; else if (hardwareStr == "iPhone1,2") ret = HardwareVersion.iPhone3G; else if (hardwareStr == "iPhone2,1") ret = HardwareVersion.iPhone3GS; else if (hardwareStr == "iPhone3,1") ret = HardwareVersion.iPhone4; else if (hardwareStr == "iPhone3,3") ret = HardwareVersion.VerizoniPhone4; else if(hardwareStr == "iPhone4,1") ret = HardwareVersion.iPhone4S; else if (hardwareStr == "iPad1,1") ret = HardwareVersion.iPad; else if (hardwareStr == "iPad2,1") ret = HardwareVersion.iPad2WIFI; else if (hardwareStr == "iPad2,2") ret = HardwareVersion.iPad2GSM; else if (hardwareStr == "iPad2,3") ret = HardwareVersion.iPad2CDMA; else if (hardwareStr == "iPad2,4") ret = HardwareVersion.iPad2WIFI24; else if (hardwareStr == "iPad3,1") ret = HardwareVersion.iPad3WIFI; else if (hardwareStr == "iPad3,2") ret = HardwareVersion.iPad3GSM; else if (hardwareStr == "iPad3,3") ret = HardwareVersion.iPad3CDMA; else if (hardwareStr == "iPod1,1") ret = HardwareVersion.iPod1G; else if (hardwareStr == "iPod2,1") ret = HardwareVersion.iPod2G; else if (hardwareStr == "iPod3,1") ret = HardwareVersion.iPod3G; else if (hardwareStr == "iPod4,1") ret = HardwareVersion.iPod4G; else if (hardwareStr == "i386" || hardwareStr=="x86_64") { if (UIDevice.CurrentDevice.Model.Contains("iPhone")) ret = UIScreen.MainScreen.Bounds.Height * UIScreen.MainScreen.Scale == 960 || UIScreen.MainScreen.Bounds.Width * UIScreen.MainScreen.Scale == 960 ? HardwareVersion.iPhone4Simulator : HardwareVersion.iPhoneSimulator; else ret = HardwareVersion.iPadSimulator; } Marshal.FreeHGlobal(pLen); Marshal.FreeHGlobal(pStr); return ret; } } } }
解决 无用评论 打赏 举报
悬赏问题
- ¥20 usb设备兼容性问题
- ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
- ¥15 安装svn网络有问题怎么办
- ¥15 Python爬取指定微博话题下的内容,保存为txt
- ¥15 vue2登录调用后端接口如何实现
- ¥65 永磁型步进电机PID算法
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)