2017-02-28 146 views
3

在我的客戶端服務器解決方案中,我需要前端設備的MAC地址,運行我的Xamarin.Forms應用程序。目前我只有一個條目,用戶應該輸入運行應用程序的設備的MAC地址(主界面)。如何在Xamarin.Forms中獲取客戶端設備的MAC地址?

我已經搜索了該主題,發現iOS和Android在返回MAC時受到限制。我也知道James Montemagno的Device plugin,它並沒有提供我需要的東西。還有可能得到它嗎?我能否至少在用戶可以手動複製MAC的確切設置頁面上創建快捷方式?

有人可能會問:爲什麼我需要mac地址?

我的解決方案是員工分享其可用性和位置的平臺。員工可以輸入設備信息,以便後端可以找到他們的設備。然後後端可以提供如下信息:John Doe目前在辦公室(因爲他的設備位於網絡中),並且位於河邊的二樓(因爲他的設備在該確切位置連接了wifi控制器)。其他想與John談話的員工則確切地知道他們可以去約翰而不是寫郵件或打電話給他。該解決方案可促進直接交流和工作與生活之間的平衡,並提供準確的數據,這些數據可自動提取,但仍符合隱私要求,因爲員工必須積極分享信息以獲得自動化狀態。最重要的是,收集到的數據與在辦公室裏詢問或散步時所獲得的數據相同。

+2

是不是重複到http://stackoverflow.com/questions/39456962/how-do-i-get-the-mac-address-for-and-android-device-using-6-0-or -hig-in-c與https://forums.xamarin.com/discussion/2233/device-mac-address的結合? – Tatranskymedved

+0

SO問題僅針對Android。只有Android在UWP,iOS,Android Xamarin.Forms解決方案中不值得。 Xam論壇線程表明,API現已在iOS中被棄用。這就是我在介紹中指出的。仍然可以選擇使用Xamarin.iOS獲取精確設置頁面的快捷方式。 如果我可以在代碼中讀取MAC或轉發到確切的頁面,我可以爲此連接一個Dependency Service,並將它放在一個按鈕後面,從而導致讀取或轉發。 @Tatranskymedved – zuckerthoben

+0

想法:向後工作:如果您可以獲取設備連接到的網絡的BSSID,設備可能會告訴它它在辦公室。然後,你需要的是設備的其他標識符... –

回答

0

我發現確實不太可能在iOS,Android和UWP上獲得Mac地址。正如我在回答中所建議的,解決方法是在應用程序上創建一個按鈕並打開包含MAC地址的設置頁面。這可以通過依賴服務來實現,這是接口的界面和平臺實現。我已經做到了這一點,並在此要點發表在GitHub上:

https://gist.github.com/zuckerthoben/ee097b816b88491f5874bb327ec6819c

的要求是,所有三個平臺和所有版本應得到支持,它應該工作同每個平臺上,關於異常行爲。對於iOS,取決於iOS版本和UWP,具體取決於平臺。

請讓我知道是否有錯誤或者您是否找到了更好的解決方案。

相關問題