Android手機中獲取手機號碼和運營商信息

package com.pei.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class AndroidUtilActivity extends Activity {
	private Button button_getSIMInfo;
	private TextView number;
	private TextView privoid;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		button_getSIMInfo = (Button) this.findViewById(R.id.getSIMInfo);
		number = (TextView) this.findViewById(R.id.textView1);
		privoid = (TextView) this.findViewById(R.id.textView2);
		button_getSIMInfo.setOnClickListener(new ButtonListener());
	}

	class ButtonListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			if (v == button_getSIMInfo) {
				SIMCardInfo siminfo = new SIMCardInfo(AndroidUtilActivity.this);
				System.out.println(siminfo.getProvidersName());
				System.out.println(siminfo.getNativePhoneNumber());
				number.setText(siminfo.getNativePhoneNumber());
				privoid.setText(siminfo.getProvidersName());
			}
		}

	}
}
package com.pei.activity;

import android.content.Context;
import android.telephony.TelephonyManager;


public class SIMCardInfo {
	/**
	 * TelephonyManager提供設備上獲取通訊服務信息的入口。 應用程序可以使用這個類方法確定的電信服務商和國家 以及某些類型的用戶訪問信息。
	 * 應用程序也可以註冊一個監聽器到電話收狀態的變化。不需要直接實例化這個類
	 * 使用Context.getSystemService(Context.TELEPHONY_SERVICE)來獲取這個類的實例。
	 */
	private TelephonyManager telephonyManager;
	/**
	 * 國際移動用戶識別碼
	 */
	private String IMSI;

	public SIMCardInfo(Context context) {
		telephonyManager = (TelephonyManager) context
				.getSystemService(Context.TELEPHONY_SERVICE);
	}

	/**
	 * Role:獲取當前設置的電話號碼
	 * <BR>Date:2012-3-12
	 * <BR>@author CODYY)peijiangping
	 */
	public String getNativePhoneNumber() {
		String NativePhoneNumber=null;
		NativePhoneNumber=telephonyManager.getLine1Number();
		return NativePhoneNumber;
	}

	/**
	 * Role:Telecom service providers獲取手機服務商信息 <BR>
	 * 需要加入權限<uses-permission
	 * android:name="android.permission.READ_PHONE_STATE"/> <BR>
	 */
	public String getProvidersName() {
		String ProvidersName = null;
		// 返回唯一的用戶ID;就是這張卡的編號神馬的
		IMSI = telephonyManager.getSubscriberId();
		// IMSI號前面3位460是國家,緊接着後面2位00 02是中國移動,01是中國聯通,03是中國電信。
		System.out.println(IMSI);
		if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
			ProvidersName = "中國移動";
		} else if (IMSI.startsWith("46001")) {
			ProvidersName = "中國聯通";
		} else if (IMSI.startsWith("46003")) {
			ProvidersName = "中國電信";
		}
		return ProvidersName;
	}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" android:gravity="center">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <Button
        android:id="@+id/getSIMInfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="獲取手機號碼等信息" />

</LinearLayout>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章