Search code examples
c++uwphololenscppwinrt

How to get mac address


i'm working on a uwp app runing on hololens2, i want get the wifi mac address.

according to this documents: Windows.Networking, i wrote this code.

 // part of includes at pch.h
 #include <winrt/Windows.ApplicationModel.Activation.h>
 #include <winrt/Windows.ApplicationModel.Core.h>
 #include <winrt/Windows.Foundation.h>
 #include <winrt/Windows.Foundation.Collections.h>
 #include <winrt/Windows.Foundation.Metadata.h>
 #include <winrt/Windows.Data.Xml.Dom.h>
 #include <winrt/Windows.Devices.h>
 #include <winrt/Windows.Devices.WiFi.h>
 #include <winrt/Windows.Devices.WiFiDirect.h>
 #include <winrt/Windows.Devices.Sms.h>
 #include <winrt/Windows.Networking.h>
 #include <winrt/Windows.Networking.BackgroundTransfer.h>
 #include <winrt/Windows.Networking.Connectivity.h>
 #include <winrt/Windows.Networking.NetworkOperators.h>
 #include <winrt/Windows.Networking.Proximity.h>
 #include <winrt/Windows.Networking.PushNotifications.h>
 #include <winrt/Windows.Networking.ServiceDiscovery.Dnssd.h>
 #include <winrt/Windows.Networking.Sockets.h>
 #include <winrt/Windows.Networking.Vpn.h>
 // some cpp function
    
     void MainPage::ClickLoginHandler(IInspectable const&, RoutedEventArgs const&)
     {
         using namespace winrt::Windows::Foundation::Collections;
         using namespace winrt::Windows::Networking;
         using namespace winrt::Windows::Networking::Connectivity;
         using namespace winrt::Windows::Networking::NetworkOperators;
         ConnectionProfile profile = NetworkInformation::GetInternetConnectionProfile();
         NetworkOperatorTetheringManager manager = 
NetworkOperatorTetheringManager::CreateFromConnectionProfile(profile); // error on the line
         IVectorView<NetworkOperatorTetheringClient> clients = manager.GetTetheringClients();
         for (NetworkOperatorTetheringClient client : clients)
         {
             OutputDebugString(client.MacAddress().c_str());
             OutputDebugString(L"\r\n");
         }
     }

but it reports an error: WinRT originate error - 0x8007007F : 'The specified procedure could not be found.'。

it seems missing dll, and i can not found out which one, or two?

if you know that please let me know.

if you know other way to get mac address, please let me know.

Thanks


Solution

  • How to get mac address for hololens2.

    For this scenario, you could use GetAdaptersAddresses method to approach. The document has simple code that you could refer.