关于游客账户创建的问题

来源:互联网 发布:linux vi编辑器例题 编辑:程序博客网 时间:2024/03/29 00:22
游客账户的创建需要与设备进行绑定,这样才不会再更新或者玩家误删文件时导致的信息丢失。


设备的唯一标识符很多,这里不讨论哪种更好的问题,只是做个笔记。


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是绑定硬件的,所以不存在这个问题。回答完之后问面试官还有哪些,面试官稍微想了一下说:对,就这样。

不管是面试官自己也不知道,还是说知道也不告诉我,管他呢。今天突然又想起一个问题:如果玩家更换手机,也会造成账户丢失。哈哈,大逗比!





0 0
原创粉丝点击