如何在c#中使用6.0或更高版本获取Mac地址和Android设备?

达维塞吉

我发现了一些使用Java的示例,但是在将方法构造为c#时遇到了麻烦。任何人都可以发布一个简单的C#示例来获取我设备的Mac地址FOR Marshmallow(6.0)。我了解还有其他获取唯一ID的方法,我现在对导入组件并不十分感兴趣。我将Xamarin与Visual Studio 2015一起使用。

我具有以下权限:

ACCESS_WIFI_STATE互联网READ_PHONE_STATE

我尝试过的唯一代码是用于android 6.0以下版本的简单方法。任何帮助表示赞赏。

编辑:我不相信这是重复的,因为我专门要求ac#版本的代码

蒂莫·萨洛梅基(TimoSalomäki)

不幸的是,你不走运。从6.0版开始,Android限制对MAC地址的访问。如果您尝试查询当前设备的MAC地址,则将获得一个恒定值02:00:00:00:00:00

您仍然可以访问附近设备的MAC地址,如Android官方文档中所述

要通过蓝牙和Wi-Fi扫描访问附近的外部设备的硬件标识符,您的应用现在必须具有ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION权限:

编辑:虽然不支持获取MAC地址的官方方法,但似乎可以通过绕路而行。我在这里发布一个最小的示例,该示例仅遍历所有网络接口,如果有,则将MAC地址输出到控制台:

// NetworkInterface is from Java.Net namespace, not System.Net
var all = Collections.List(NetworkInterface.NetworkInterfaces);

foreach (var interface in all)
{
    var macBytes = (interface as NetworkInterface).GetHardwareAddress();

    if (macBytes == null) continue;

    var sb = new StringBuilder();
    foreach (var b in macBytes)
    {
        sb.Append((b & 0xFF).ToString("X2") + ":");
    }

    Console.WriteLine(sb.ToString().Remove(sb.Length - 1));
}

要在现实世界中使用此功能,需要进行一些空引用检查和其他修改,但是它可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Winforms中使用C#访问移动设备(Windows Mobile 6.0或更高版本)驱动器

如何在C#中使用逗号从用户获取值?

如何在C#和MFCC提取中使用OpenSmile

如何获取我的Android蓝牙设备的ID或MAC地址?

如何在 C# 中使用 UserPrincipal 获取 Active Directory 中地址的详细信息

vb6-在Windows 7和更高版本上获取网络适配器的物理地址

如何在C#中使用反射获取方法的所有属性和属性数据

如何在查询C#中使用Linq和Dictionary从List <>获取元素?

如何在 C# 中使用 REST API 获取 Azure 批处理池和作业列表?

如何在 C# 中使用 HTMLNode 和 HtmlAgility-Pack 从网站获取值

如何在Android中获取附近所有设备的MAC地址

在Mac OSX上将JDK 7或更高版本与Android Studio和Eclipse一起使用

在Xcode上使用iOS8和更高版本的设备

如何在C#中使用DLL Import和Get事件调用回调方法C ++

如何在C#中使用linq按设备时间戳进行分组

如何在C#中使用Frame Grabber设备捕获图像?

如何在Unity中使用C#代码在移动设备上工作?

如何在.NET Core,C#6和Visual Studio 2015中使用本地IIS?

如何在 C# 中使用 System.Speech 获取原始语音数据?

如何在C#中使用xelement获取xml节点值

如何在C#中使用Selenium WebDriver获取当前窗口的URL?

如何在 C# 中使用 .NET API 获取 Azure 服务总线的队列大小

如何在C#中使用Linq从DataSet中获取数据?

如何在C#中使用Regex获取子字符串

如何在 C# 中使用自定义域名获取当前 PathName?

如何在C#中使用File.WriteAllText获取文件的完整路径?

如何在C#中使用基本身份验证从Rest Service获取xml

如何在C#中使用for循环获取对象列表的值

如何在C#中使用反射获取Json属性名称