L-04D情報ソフトを作ってみた
いまんところSSIDが予め設定されているもの(=L-04DのSSIDに設定しておく)だった場合、L-04Dにアクセスしてネットワークと信号強度、転送バイト数を表示するだけのもの
もうちょっとグラフィカルにひねるべきだが...
ソースの一部を示します
#import <SystemConfiguration/CaptiveNetwork.h> #import "SBJson.h" @interface ViewController () @end @implementation ViewController - (NSDictionary*)parseURL: (NSString*)urlString { NSStringEncoding usedEncoding; NSError *error; NSURL *url = [NSURL URLWithString:urlString]; NSString *str = [NSString stringWithContentsOfURL:url usedEncoding:&usedEncoding error:&error]; if(!str) return nil; NSArray *jsons = [str componentsSeparatedByString:@"="]; NSString *str1 = [jsons objectAtIndex:1]; NSArray *jsons1 = [str1 componentsSeparatedByString:@";"]; SBJsonParser *parser = [SBJsonParser new]; return [parser objectWithString:[jsons1 objectAtIndex:0]]; } - (void)setSSID { CFArrayRef interfaces = CNCopySupportedInterfaces(); CFDictionaryRef dicRef = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(interfaces, 0)); if (!dicRef) return; // No connection NSString *ssid = CFDictionaryGetValue(dicRef, kCNNetworkInfoKeySSID); [self.ssidtext setText:ssid]; if([ssid isEqualToString:[self.ssidmatch text]]) // L04DのSSIDなら接続してデータをとりにいく { NSDictionary *resArr = [self parseURL:@"http://192.168.2.1/json/status.json"]; NSString *connNetwork = resArr? [resArr objectForKey:@"Network selection"] : nil; // 3G,LTE,nil NSString *connStrength =resArr? [resArr objectForKey:@"Signal strength"] : nil; // Signal strength resArr = [self parseURL:@"http://192.168.2.1/json/data_usage.json"]; NSString *usageStr =resArr? [resArr objectForKey:@"Curr_usage"] : nil; // Current data usage in bytes NSString *clientsStr =resArr? [resArr objectForKey:@"Connected clients"] : nil; // Current wifi clients [self.result setText:[NSString stringWithFormat:@"%@ %@, %@ bytes", connNetwork, connStrength, usageStr]]; } else [self.result setText:@"No connection to L04D SSID"]; } ...