mcc,为啥有的手机上报的时候竟然没插卡,仍然是460,那不是坑爹嘛

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 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层不要随便阉割啊,都废了!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!