c# - 获取 iOS 设备的 Android 标识符 (C#)

标签 c# android ios xamarin.ios xamarin.android

我已经编写了一个函数,应该为 iOS 设备提供一个标识符......但现在我必须为 Android 设备做同样的事情......

两个设备上是否都有 Id 女巫?

实际上我正在使用 AdvertisingIdentifier。

    private static string GetIdentifier()
    {
        if (ASIdentifierManager.SharedManager.IsAdvertisingTrackingEnabled)
        {
            return ASIdentifierManager.SharedManager.AdvertisingIdentifier.ToString();
        }

        return null;
    }

最佳答案

因为我不知道你到底想要哪个ID,所以我写了三个代码块如下:

//get unique number through TelephonyManager
//use this method, we need to add android.permission.READ_PHONE_STATE permission
var telephonymanager = this.GetSystemService(Context.TelephonyService) as TelephonyManager;
var imsid = telephonymanager.SubscriberId;
System.Diagnostics.Debug.WriteLine("imsid: " + imsid);

//get mac address through WifiManager
//use this method, we need to add android.permission.ACCESS_WIFI_STATE permission
var wifimanager = this.GetSystemService(Context.WifiService) as WifiManager;
var info = wifimanager.ConnectionInfo;
var macaddress = info.MacAddress;
System.Diagnostics.Debug.WriteLine("mac address: " + macaddress);

//get Android_ID use Android Provider
var deviceid = Android.Provider.Settings.Secure.GetString(this.ContentResolver,
    Android.Provider.Settings.Secure.AndroidId);
System.Diagnostics.Debug.WriteLine("device id: " + deviceid);

第一个是获取手机的 IMEI、MEID、ESN 和 IMSI,这是该硬件所独有的。第二个是获取设备的 mac 地址,最后一个是获取设备 ID。

它们都可以用来识别设备,您可以根据自己的场景选择合适的。顺便说一句,对于需要的权限,我已经在代码块中进行了注释。

关于c# - 获取 iOS 设备的 Android 标识符 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46605679/

相关文章:

c# - 如何更改 Android MaterialCalendarView 月份的颜色?

c# - 遍历通用对象属性

android - 图像未在移动浏览器中显示

android - 如何在不弹出任何对话框的情况下注销 Facebook?

iPhone RestKit 加载 NSManagedObject 而不是 NSManagedObject+(ActiveRecord)

ios - 如何从 mapView 中删除我的自定义注释?

c# - 设置变量 - 构造函数/获取/设置 C#

c# - 如何打败 ProviderIncompatibleException?

java - 倒计时器根本不工作

ios - 如何在 Objective-C 中获取 QuickBlox token