DaW*_*guy 4 android mac-address xamarin.android xamarin
我找到了一些使用Java的例子,但是我在构建c#方法时遇到了麻烦.任何人都可以发一个简单的c#示例获取我的设备的Mac地址,FOR Marshmallow(6.0).我知道还有其他方法可以获得唯一的ID,我现在不必对导入组件感兴趣.我在Visual Studio 2015中使用Xamarin.
我有这些权限激活:
ACCESS_WIFI_STATE INTERNET READ_PHONE_STATE
我尝试的唯一代码是Android 6.0版下面使用的简单方法.任何帮助表示赞赏.
编辑:我不认为这是一个副本,因为我特别要求ac#版本的代码
不幸的是,你运气不好.从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));
}
Run Code Online (Sandbox Code Playgroud)
要在现实世界中使用它,需要一些空引用检查和其他修改,但它可以工作.
| 归档时间: |
|
| 查看次数: |
5023 次 |
| 最近记录: |