0

iOS デバイスの Wifi アドレスを読み取る必要があります。しかし、私が試したコードはシミュレーターとiPad 2 / v6.1.3で失敗しています

私は Titanium で作業しているので、最初に Titanium.Platform.address を試しました。それは未定義に戻ります。

その後、Objective C で作業を開始しましたが、この関数も WiFi IP の取得に失敗しています。デバイスのアドレスを手動で入力すると、インターネットが機能し、ネットワーク プロジェクトが機能するため、WiFi がオンになっていることがわかります。

- (id)networkAddress
{
    NSLog(@"[INFO] getting network IP");

    BOOL success;
    struct ifaddrs * addrs;
    const struct ifaddrs * cursor;

    success = getifaddrs(&addrs) == 0;
    if (success) {

        NSLog(@"[INFO] getifaddrs() success");

        cursor = addrs;
        while (cursor != NULL) {
            if (cursor->ifa_addr->sa_family == AF_INET && (cursor->ifa_flags & IFF_LOOPBACK) == 0) // this second test keeps from picking up the loopback address
            {
                NSString *name = [NSString stringWithUTF8String:cursor->ifa_name];
                if ([name isEqualToString:@"en0"]) { // found the WiFi adapter
                    return [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];
                }
            }

            cursor = cursor->ifa_next;
        }
        freeifaddrs(addrs);
    }
    return NULL;
}

WiFi IP アドレスを読み取れない原因は何ですか?

4

0 に答える 0