版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/82715318
1、事情原委是这样。。。
明明手机没有插Sim,但是竟然有读取mcc,取前三位,刚好是460,460代码中国区的mcc,这个mcc是要上报给服务器的呀!!!!
2、是什么原因导致的?因为不是所有手机都有这个现象。高度怀疑是厂商修改Framework层造成的。。。
罪魁祸首就是 android.content.res
Configuration,mcc是里面的一个public的变量,无语中
Configuration config = BloodEyeApplication.getInstance().getResources().getConfiguration(); String mcc = "" + config.mcc; //倍余转字符串的方式好特别哦,这里mcc是int,需要转为String 这个Android的Configuration,获取mcc的时候,貌似连权限都没要(不确定,需要以后去搞)
3、日常我们拿mcc,一般是用TelephonyManager,这个是需要电话权限的,毕竟是隐私,肯定是要显式获取的,而且保证万无一失
4、总的来说,对于海外用户来讲,这个问题倒不会碰到,毕竟只有国行的设备才有这个情况嘛。。哎、Framework层不要随便阉割啊,都废了!