我使用此方法获取设备型号名称:
+ (NSString *) machineModel
{
const char *name = "hw.model";
#if TARGET_OS_IPHONE
// .model on iOS returns internal model name (e.g. "N51AP") when we'd prefer to see the model identifier here ("iPhone6,1")
name = "hw.machine";
#endif
int error = 0;
size_t length = 0;
error = sysctlbyname(name, NULL, &length, NULL, 0);
if (error != 0) {
return nil;
}
char *p = malloc(sizeof(char) * length);
if (p) {
error = sysctlbyname(name, p, &length, NULL, 0);
}
if (error != 0) {
free(p);
return nil;
}
NSString *machinemodel = [NSString stringWithFormat:@"%s", p];
free(p);
return machinemodel;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在数千台设备上运行此代码时,我在数据库中获得以下选项:
"iPhone7;1"
"iPhone8,1"
"iPhone7;2"
"iPhone"
"iPhone9;3"
"iPhone7;1"
"iPhone8,1"
"iPhone8,1"
"iPhone7,2"
"iPhone7;2"
"iPhone9;1"
"iPhone7;2"
...
Run Code Online (Sandbox Code Playgroud)
有时我有,分隔符,有时候; 有时我看不到号码:"iPhone"
为什么会这样?
我希望这可以从Android设备(5K不同的制造商),但为什么iOS只有Apple是所有者
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |