blob: 9a0d2b5a76702cc78b573612ea3e822079a7a57a [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "DeviceInfoPlugin.h"
@implementation DeviceInfoPlugin
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
FlutterMethodChannel* channel =
[FlutterMethodChannel methodChannelWithName:@"plugins.flutter.io/device_info"
binaryMessenger:[registrar messenger]];
DeviceInfoPlugin* instance = [[DeviceInfoPlugin alloc] init];
[registrar addMethodCallDelegate:instance channel:channel];
}
- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
if ([@"getIosDeviceInfo" isEqualToString:call.method]) {
UIDevice* device = [UIDevice currentDevice];
result(@{
@"name" : [device name],
@"systemName" : [device systemName],
@"systemVersion" : [device systemVersion],
@"model" : [device model],
@"localizedModel" : [device localizedModel],
@"identifierForVendor" : [[device identifierForVendor] UUIDString],
@"isPhysicalDevice" : [self isDevicePhysical],
});
} else {
result(FlutterMethodNotImplemented);
}
}
// return value is false if code is run on a simulator
- (NSString*)isDevicePhysical {
#if TARGET_OS_SIMULATOR
NSString* isPhysicalDevice = @"false";
#else
NSString* isPhysicalDevice = @"true";
#endif
return isPhysicalDevice;
}
@end