关于游客账户创建的问题

41 篇文章 0 订阅
3 篇文章 0 订阅
游客账户的创建需要与设备进行绑定,这样才不会再更新或者玩家误删文件时导致的信息丢失。


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


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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HelloMingo

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值