Общий доступ к подключению к Интернету
В этом документе описывается, как можно включить общий доступ к интернет-подключениям (ICS) в Windows IoT Базовая. Разработчики могут использовать API NetworkTetheringManager для программной настройки ICS. API описан в классе NetworkOperatorTetheringManager . При использовании одного из Windows 10 IoT Базовая образ выпуска ICS также можно настроить с помощью портала устройств.
Важно!
Сначала необходимо создать профиль Wi-Fi, а в манифест необходимо добавить следующее: <DeviceCapability Name="wiFiControl" />
Руководство по совместному использованию см. в документе о выпуске Windows IoT Базовая за ноябрь 2015 г .
Настройка ICS с помощью портала устройств
См. документацию на портале устройств Windows (WDP).
Пример кода ICS
В приведенном ниже примере кода показано, как api NetworkOperatorTetheringManager используется для начала совместного использования ethernet-подключения через Wi-Fi. Метод CreateFromConnectionProfile принимает аргументы, указывающие открытый и закрытый интерфейсы. В любых случаях неправильной настройки, например при отключении Wi-Fi радио или ограниченном подключении Ethernet, при попытке начать общий доступ к Интернету передается соответствующий код ошибки, относящийся к этому сценарию.
using Windows.Networking.NetworkOperators;
using Windows.Networking.Connectivity;
// Find the Ethernet profile (IANA Type 6)
var connectionProfiles = NetworkInformation.GetConnectionProfiles();
var ethernetConnectionProfile = connectionProfiles.FirstOrDefault(x => x.NetworkAdapter.IanaInterfaceType == 6);
// Find an 802.11 wireless network interface (IANA Type 71)
var wirelessConnectionProfile = connectionProfiles.FirstOrDefault(x => x.NetworkAdapter.IanaInterfaceType == 71);
var targetNetworkAdapter = wirelessConnectionProfile.NetworkAdapter;
if (ethernetConnectionProfile != null && targetNetworkAdapter != null)
{
var tetheringManager = NetworkOperatorTetheringManager.CreateFromConnectionProfile(ethernetConnectionProfile, targetNetworkAdapter);
var result = await tetheringManager.StartTetheringAsync();
if (result.Status == TetheringOperationStatus.Success)
{
UpdateUI();
}
else
{
ProcessTetheringError(result);
}
}