summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/cordova-plugin-sim/src/ios/Sim.m
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-sim/src/ios/Sim.m')
-rw-r--r--StoneIsland/plugins/cordova-plugin-sim/src/ios/Sim.m55
1 files changed, 55 insertions, 0 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-sim/src/ios/Sim.m b/StoneIsland/plugins/cordova-plugin-sim/src/ios/Sim.m
new file mode 100644
index 00000000..49d70eac
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-sim/src/ios/Sim.m
@@ -0,0 +1,55 @@
+// MCC and MNC codes on Wikipedia
+// http://en.wikipedia.org/wiki/Mobile_country_code
+
+// Mobile Network Codes (MNC) for the international identification plan for public networks and subscriptions
+// http://www.itu.int/pub/T-SP-E.212B-2014
+
+// class CTCarrier
+// https://developer.apple.com/reference/coretelephony/ctcarrier?language=objc
+
+#import "Sim.h"
+#import <Cordova/CDV.h>
+#import <Foundation/Foundation.h>
+#import <CoreTelephony/CTCarrier.h>
+#import <CoreTelephony/CTTelephonyNetworkInfo.h>
+
+@implementation Sim
+
+- (void)getSimInfo:(CDVInvokedUrlCommand*)command
+{
+ CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
+ CTCarrier *carrier = [netinfo subscriberCellularProvider];
+
+ BOOL allowsVOIPResult = [carrier allowsVOIP];
+ NSString *carrierNameResult = [carrier carrierName];
+ NSString *carrierCountryResult = [carrier isoCountryCode];
+ NSString *carrierCodeResult = [carrier mobileCountryCode];
+ NSString *carrierNetworkResult = [carrier mobileNetworkCode];
+
+ if (!carrierNameResult) {
+ carrierNameResult = @"";
+ }
+ if (!carrierCountryResult) {
+ carrierCountryResult = @"";
+ }
+ if (!carrierCodeResult) {
+ carrierCodeResult = @"";
+ }
+ if (!carrierNetworkResult) {
+ carrierNetworkResult = @"";
+ }
+
+ NSDictionary *simData = [NSDictionary dictionaryWithObjectsAndKeys:
+ @(allowsVOIPResult), @"allowsVOIP",
+ carrierNameResult, @"carrierName",
+ carrierCountryResult, @"countryCode",
+ carrierCodeResult, @"mcc",
+ carrierNetworkResult, @"mnc",
+ nil];
+
+ CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:simData];
+
+ [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+}
+
+@end