首页 > 代码库 > Android获取手机信息

Android获取手机信息

做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能。

TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); 
numberText.setText(tm.getLine1Number());

红色标记函数能够获取本机号码。

除此之外,TelephonyManager类还提供了多种获取手机信息的函数,入imei、imsi等。、

看代码:

package com.pingan.innovation;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class PhoneInfo extends Activity {
 private TextView numberText;
 private TextView imeiText;
 private TextView onText;
 private TextView snText;
 private TextView imsiText;
 private TextView ssText;
 private TextView ntText;
 
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        numberText = (TextView) findViewById(R.id.numberText);
        imeiText = (TextView) findViewById(R.id.imeiText);
        onText = (TextView) findViewById(R.id.onText);
        snText = (TextView) findViewById(R.id.snText);
        imsiText = (TextView) findViewById(R.id.imsiText);
        ssText = (TextView) findViewById(R.id.ssText);
        ntText = (TextView) findViewById(R.id.ntText);
        TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
        numberText.setText(tm.getLine1Number());
        imeiText.setText(tm.getDeviceId());
        onText.setText(tm.getNetworkOperatorName());
        snText.setText(tm.getSimSerialNumber());
        imsiText.setText(tm.getSubscriberId());
        ssText.setText(tm.getNetworkCountryIso());
        ntText.setText(tm.getNetworkOperator());

    }
}

以上几个函数分别获取的是:

手机号码、imei、运营商名称、sim卡序列号、IMSI、sim卡所在国家、运营商编号。

Android获取手机信息

对了,AndroidManifest.xml里面还需加上:<uses-permission android:name="android.permission.READ_PHONE_STATE" />

这样才能有对手机信息的访问权限。

 

不过,经过在HTC Hero真机上的测试,发现获取不到手机号码。

在Ophone系统的多普达A6188上测试,同样也取不到手机号码。