我想知道怎么样知道现在设备的平台。请大家帮忙,谢谢……
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 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改
- ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
- ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
- ¥40 串口调试助手打开串口后,keil5的代码就停止了
- ¥15 电脑最近经常蓝屏,求大家看看哪的问题
- ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
- ¥50 C++五子棋AI程序编写
- ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
- ¥15 SQL Server analysis services 服务安装失败