本文主要是介绍关于游客账户创建的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
游客账户的创建需要与设备进行绑定,这样才不会再更新或者玩家误删文件时导致的信息丢失。
设备的唯一标识符很多,这里不讨论哪种更好的问题,只是做个笔记。
windows下通过NetworkInterface读取MAC地址:
///<summary>/// 通过NetworkInterface读取网卡Mac,电脑端使用///</summary>///<returns></returns>public static string GetMacByNetworkInterface(){string mac = "";NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();foreach (NetworkInterface ni in interfaces){mac+=ni.GetPhysicalAddress().ToString();}mac = mac.Substring(0,12);return mac;NGUIDebug.Log();}
需要引入命名空间 System.Net.NetworkInformation;
注意一下开发环境,如果是在web环境下,这个命名空间是不支持的。
ANDROID获取DEVICE_ID
这是Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有的设备都可以返回这个串号,并且唯一性良好。
这个DEVICE_ID可以同通过下面的方法获取:
String deviceId = ((TelephonyManager)getSystemService(TELEPHONY_SERVICE)).getDeviceId();
它会根据不同的手机设备返回IMEI,MEID或者ESN码,但在使用的过程中有以下问题:
- 非手机设备:最开始搭载Android系统都手机设备,而现在也出现了非手机设备:如平板电脑、电子书、电视、音乐播放器等。这些设备没有通话的硬件功能,系统中也就没有TELEPHONY_SERVICE,自然也就无法通过上面的方法获得DEVICE_ID。
- 权限问题:获取DEVICE_ID需要READ_PHONE_STATE权限,如果只是为了获取DEVICE_ID而没有用到其他的通话功能,申请这个权限一来大才小用,二来部分用户会怀疑软件的安全性。
- 厂商定制系统中的Bug:少数手机设备上,由于该实现有漏洞,会返回垃圾,如:zeros或者asterisks
IOS设备的唯一标识后面补充...
====================2016.8.14
因为从厦门辞职来到上海,所以,说好的IOS设备的游客账号功能一直没有做。前几天在某个工作室面试的时候,面试官问我:游客登录有什么缺点?
一脸懵逼,真没考虑过。。。
想了一会儿之后,很不坚定的说:IOS因为没有办法绑定硬件,所以可能会造成账户丢失,但是Android是绑定硬件的,所以不存在这个问题。回答完之后问面试官还有哪些,面试官稍微想了一下说:对,就这样。
不管是面试官自己也不知道,还是说知道也不告诉我,管他呢。今天突然又想起一个问题:如果玩家更换手机,也会造成账户丢失。哈哈,大逗比!
这篇关于关于游客账户创建的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!