用getLine1Number();很多手机得到的是空,也看了不少人的解释,说是运营商那里的没有写入的问题,那是不是就没办法得到了呢?还有别的办法吗?

解决方案 »

  1.   

    是的,获取手机号码很困难的,只能获取imsi的,只有发个短信了
      

  2.   

    imsi,说的很清楚啊,imei是硬件识别码,差远了
      

  3.   

    imsi,sim卡的唯一标示,运营商数据库中有手机号和imsi的对应表
      

  4.   

    不知道电信cdma手机uim卡是否和sim卡是同样的?
      

  5.   

    试试这个吧android.telephony.TelephonyManagerpublic String getSimSerialNumber ()Since: API Level 1
    Returns the serial number of the SIM, if applicable. Return null if it is unavailable.
    Requires Permission: READ_PHONE_STATE
      

  6.   

    手机号码是MSISDN,SIM卡里有这个文件,但国内的运营商是不写这个的。AT+CNUM 是读本机号码的命令,如果没写过就是空的。
      

  7.   

    android应该不行吧。
    这点可以从飞信来证明:sb版本的手机飞信,登录时不需要输入手机号码,密码,自动默认sim卡登录。但是android版本的飞信则不行,必须手动输入。
    由此来看:android版本还无法完成这项功能。或许可以通过底层来解决,这样的话,但是飞信都没有做,很有可能难度较大。
      

  8.   


    从飞信的TCP包看的情况是,启动的时候向一个叫做getsystemconfig的网址发了POST请求,然后就返回了一个xml,其中有手机号。
    网络侧有pdp上下文,知道手机号应该不难。
      

  9.   


    兄弟介个是sim卡的序列号