iphone-Monotouch检测当前平台

问题描述

Monotouch检测当前平台
我想知道怎么样知道现在设备的平台。请大家帮忙,谢谢……

解决方案

参考一下

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 == ""iPhone11"")                ret = HardwareVersion.iPhone;            else if (hardwareStr == ""iPhone12"")                ret = HardwareVersion.iPhone3G;            else if (hardwareStr == ""iPhone21"")                ret = HardwareVersion.iPhone3GS;            else if (hardwareStr == ""iPhone31"")                ret = HardwareVersion.iPhone4;            else if (hardwareStr == ""iPhone33"")                ret = HardwareVersion.VerizoniPhone4;            else if(hardwareStr == ""iPhone41"")                ret = HardwareVersion.iPhone4S;            else if (hardwareStr == ""iPad11"")                ret = HardwareVersion.iPad;            else if (hardwareStr == ""iPad21"")                ret = HardwareVersion.iPad2WIFI;            else if (hardwareStr == ""iPad22"")                ret = HardwareVersion.iPad2GSM;            else if (hardwareStr == ""iPad23"")                ret = HardwareVersion.iPad2CDMA;            else if (hardwareStr == ""iPad24"")                ret = HardwareVersion.iPad2WIFI24;            else if (hardwareStr == ""iPad31"")                ret = HardwareVersion.iPad3WIFI;            else if (hardwareStr == ""iPad32"")                ret = HardwareVersion.iPad3GSM;            else if (hardwareStr == ""iPad33"")                ret = HardwareVersion.iPad3CDMA;            else if (hardwareStr == ""iPod11"")                ret = HardwareVersion.iPod1G;            else if (hardwareStr == ""iPod21"")                ret = HardwareVersion.iPod2G;            else if (hardwareStr == ""iPod31"")                ret = HardwareVersion.iPod3G;            else if (hardwareStr == ""iPod41"")                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;        }    }}}
时间: 2024-11-17 11:51:44

iphone-Monotouch检测当前平台的相关文章

美调查称iPhone用户对苹果平台忠诚度并不高

导语:美国科技博客Business Insider本周刊文称,Android手机在美国的市场份额已经超过iPhone,这一消息的准确性引发了激烈争议.为此,Business Insider进行了一项有关智能手机的调查,调查显示用户对苹果平台忠诚度并不高:大部分iPhone拥有者表示,如果Android手机在关键领域好于iPhone,那么他们将会购买Android手机. 以下为调查结果的要点: - 几乎所有受访者都已经使用智能手机. - 大部分受访者使用Android手机,其余人中大多数使用iPh

MonoTouch:用.NET开发iPhone应用

直到最近,要为苹果的iPhone开发应用程序的唯一选择就是一头扎进苹果的开发系统中.这意味着,你必须"愿意"在XCode IDE中编写Objective-C代码.对于很多开发人员,学习Objective-C被看作是一个巨大的障碍.特别对于哪些从来不用担心内存管理.指针和C语言要负责处理的东西的开发人员来说,更是如此. 随着MonoTouch框架(Novell的Mono Project的一部分)的出现,这一切都将改变.Mono Project是微软.NET平台的开源实现.其允许你在几乎任

iPhone 4保护套条款更改:检测出问题才送

10月8日消息,今日获悉,苹果中国自10月1日起已更改iPhone 4保护套条款,10月1日后不再对所有购买iPhone 4的用户赠送保护套,只有购买的iPhone 4检测出问题并通过保护套能够解决此问题才能享受赠送政策. http://www.aliyun.com/zixun/aggregation/30877.html">行货iPhone 4自9月25日起在中国内地开始发售,中国联通和苹果公司曾告知用户,9月30日前的购机者可以凭购买iPhone 4的小票等相关凭证到苹果零售店免费领取

移动APP漏洞自动化检测平台建设

前言:本文是<移动APP客户端安全笔记>系列原创文章中的第一篇,主要讲的是企业移动APP自动化漏洞检测平台建设,移动APP漏洞检测发展史与前沿技术,APP漏洞检测工具与平台,以及笔者的一些思考.希望能对移动App自动化漏洞检测感兴趣的同学有所帮助,限于笔者技术水平与文章篇幅,有些内容暂没有逐一详细分析,后续我争取多学习多分享,在此也欢迎大家指点和交流. 一.国内Android App漏洞检测发展简史 1.1石器时代 (2007-2011) 关键词:反编绎,人工审计 2007年11年,Googl

SDL2.0例子代码分析---代码运行平台检测

简介 SDL2.0例子程序中的 testplatform项目代码分析 ,针对不同的平台 检测字节序 CPU支持的指令集 类型宽度 以及断言 代码+注释 #include <stdio.h> #include "SDL.h" #include "SDL_endian.h" #include "SDL_cpuinfo.h" #include "SDL_assert.h" /* * 该例子代码检测运行平台 */ //判断

.net程序员的iPhone开发-MonoTouch

iPhone软件的Native开发除了使用Apple推荐的Objective-C  Cocoa之外,也有其他的一些工具和SDK提供 基于WEB的形式的一些框架在下面这个文章介绍过 各种SmartPhone上的跨平台开源框架的总结 http://www.cnblogs.com/2018/archive/2010/12/28/1918814.html   对于.net人员来说,使用C#语言也可以进行开发,这就是MonoTouch monotouch 2009年Novell开始的项目 通过MonoTo

javascript客户端检测技术

原文:javascript客户端检测技术 javascript客户端检测技术  1. Firefox    Gecko是firefox的呈现引擎.当初的Gecko是作为通用Mozilla浏览器一部分开发的,而第一个采用Gecko引擎的浏览器是Netscape6: 我们可以使用用户代理检测下:如下JS代码: var ua = navigator.userAgent; console.log(ua); 在windows下firefox下打印如下:    Mozilla/5.0 (Windows NT

在MonoTouch中自定义表格

为什么要定制表格? 表格在很多iPhone应用程序中都是必需的UI元素.虽然对于应用程序开发而言,这并非是一项新发明,鉴于设备尺寸等方面的限制,表格在iPhone中的功能是非常固定的. 苹果在其SDK中,直接内置了很多风格来让你定制表格.不过,在你最初创建表格的时候,它看起来非常简单.在没有进行任何定制的时候,你可以为表格选择两种基本风格,默认风格和分组风格: 在对表格中的单元格进行一点调整后,你就可以添加图标和说明文字: 你甚至能改变单元格的字体和颜色,然而,有时候这样还是不足够.如果你真的想

从警示框设计 看iPhone与Android的区别

有一次我无意中发现了这样的警示弹出框样式(左边是iPhone客户端的,右边是Android客户端的),那一刹那,我真的被雷到了. 我告诉视觉设计师,"取消"和"确定"应该在样式上有所区别(我有点无奈,因为我觉得这是常识),并让他认真参考一下iPhone的原生样式(如下图). 之后,改成了这个样子(左边是iPhone客户端的,右边是Android客户端的). 我依然不太满意,但我没想到的是,Android的开发人员也不满意了,他们跟我说:"现在这样子太丑了,