private WiFiAvailableNetwork[] ParseNativeReports(byte[] nativeReport) { int bytePos = 1; int recordCount = nativeReport[0]; WiFiAvailableNetwork[] WifiNetworks = new WiFiAvailableNetwork[recordCount]; for (int index = 0; index < recordCount; index++) { WifiNetworks[index] = new WiFiAvailableNetwork(); WifiNetworks[index].Bsid = BitConverter.ToString(nativeReport, bytePos, 6); bytePos += 6; // need to convert this programmatically to prevent referencing System.Text char[] rawSsid = new char[33]; for (int i = 0; i < 33; i++) { rawSsid[i] = (char)nativeReport[bytePos + i]; } WifiNetworks[index].Ssid = new string(rawSsid, 0, 33); bytePos += 33; WifiNetworks[index]._rssi = (sbyte)nativeReport[bytePos]; bytePos++; // FIXME - Not using Auth mode and Cypher Yet // Needs the Windows.Networking.Connectivity.NetworkEncryptionType & // Networking.Connectivity.AuthenticationType defined int authMode = (sbyte)nativeReport[bytePos]; bytePos++; int cypherType = (sbyte)nativeReport[bytePos]; bytePos++; } return(WifiNetworks); }