2017-02-28 361 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,具体取决于平台。

请让我知道是否有错误或者您是否找到了更好的解决方案。

相关问题