我正在寻找一种方法来检测我的应用程序正在运行的设备。我对软件版本不感兴趣。我搜索了很多问题,但没有一个(令人惊讶地)满足我的需求,原因如下:
解决方案一:
NSString *deviceType = [UIDevice currentDevice].model;
这不起作用,因为它只给我“iPad”。我想知道是否是iPad、iPad 2、new iPad、iPhone 3GS、iPhone4等。
解决方案2:不测试设备类型,而是检查个人功能
这并不适用,因为我希望此数据收集用户统计信息,而不是执行任何设备特定的操作。
解决方案3:使用 UIDeviceHardware 发现here
这段代码看起来相当过时,并且似乎可以访问设备上的私人数据。甚至存在使用此功能的应用程序是否会获得批准的争论。更重要的是,我不知道它是如何工作的:)还找到了替代方案here
我提到的最后两个可以安全使用吗?他们未来合规吗?他们是否遵守 Apple 审批规则?
或者还有其他方法可以解决这个问题吗?
提前致谢。
Apple 在其示例代码中使用了这样的 API。引用LargeImageDownsizing
示例项目,在文件中LargeImageDownsizingViewController.m
从第 83 行开始:
可以选择适当的结果图像尺寸和图块尺寸,
但留给开发人员作为练习。请注意,该设备
类型/版本字符串(例如“iPhone2,1”可以在运行时确定
通过使用 sysctlbyname 函数:
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString* _platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
free(machine);
_platform 在我的例子中是iPod4,1
适用于第 4 代 iPod touch。
此代码是您发布的两个 Github 示例的根目录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)