是的,通过操作系统是无法获得手机号的,手机号只能在网络中被识别,在手机上可以取得卡的imsi号

解决方案 »

  1.   

       手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备 识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会 的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。 
        那么手机号为什么有的就能显示呢? 这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。 
      

  2.   

    现在所有的都获取不到了,只能拿到imsi号
    运营商的手机号跟这个imsi号是一一对应绑定的。
      

  3.   


    正解,现在的sim卡只能取出imsi,只有很少一部分比较早的sim卡可以取出手机号。不知道楼主想要手机号做什么,如果想区分用户的话可以使用imsi或者imei,或者再加上一个mac。
      

  4.   

    2011-11-18 15:26:56  短信  发  梦网业务  106575160882066  64byte  0.10    
    2011-11-18 15:27:03  短信  发  梦网业务  106575160882066  12byte  0.10 这应该是盛大切客发的短信,还扣了2毛钱。但没有接收的短信,他是在服务器端就处理了?
      

  5.   

    哈哈,当然不行哦,,,收到短信偷偷删掉
    哥做个DEMO,也没有本机号,那个看的人老说要输入本机手机号那只是个DEMO!!!!!难道要写得很全吗!!!只是演示下功能!!!
      

  6.   

    有DEMO吗?写全的,呵呵,
    我看盛大的切客,应该不会发短信回来,因为我在移动平台看没有回来的短信,也不存在偷偷删除掉短信的。
      

  7.   

    http://download.csdn.net/detail/yanglw_ahut/4522913 这个可以获取联通的手机号,通过wap
      

  8.   

    这个是正解,下面的方法是读取本机号码没错,但这个号码是后写入的,写11111就读出111111,有些手机可以设置本机号码的,设好了就能读到正确的号码
    TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String tel = tm.getLine1Number();
      

  9.   

    国内UIM,SIM卡保存的是IMSI,一般不保存卡号!但现在运营商提供获取号码服务,但是一定要走代理方式,例如电信apn设为ctwap,天翼应用都可以获取手机号码!