Nicolas Verinaud
07/01/2021, 1:46 PM- (NSString *) getSysInfoByName:(char *)typeSpecifier
{
size_t size;
sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);
char *answer = malloc(size);
sysctlbyname(typeSpecifier, answer, &size, NULL, 0);
NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];
free(answer);
return results;
}
And my Kotlin version :
private fun sysInfoByName(identifier: String): String? {
val size = cValue<size_tVar>()
sysctlbyname(identifier, null, size, null, 0)
var result: String? = ""
memScoped {
val value = allocArray<charfVar>(size.size)
sysctlbyname(identifier, value, size, null, 0)
result = NSString.stringWithCString(cString = value, NSUTF8StringEncoding)
}
return result
}
The result is always empty. 😞
Do you know why ? 😇borisdamato
07/01/2021, 3:57 PMval deviceModel = memScoped {
val sysInfo = alloc<utsname>()
if (uname(sysInfo.ptr) == 0) {
sysInfo.machine.toKString()
} else {
"Unknown"
}
}
(for simulators it will return x86_64, but will return iPhone11,8 etc for real devices)louiscad
07/01/2021, 9:13 PMUIDevice.currentDevice
Nicolas Verinaud
07/02/2021, 4:11 AMUIDevice
but it only returns “iPhone” or “iPad” or “iPod” xDlouiscad
07/02/2021, 5:03 AM