Android获取手机号码和运营商信息的方法

所属分类: 软件编程 / Android 阅读数: 499
收藏 0 赞 0 分享

本文实例讲述了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; 
 
/**
 * class name:AndroidUtilActivity<BR>
 * class description:show get sim card info activity<BR>
 * PS:注意权限 <BR>
 * Date:2012-3-12<BR>
 * @version 1.00
 * @author CODYY)peijiangping
 */ 
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; 
 
/**
 * class name:SIMCardInfo<BR>
 * class description:读取Sim卡信息<BR>
 * PS: 必须在加入各种权限 <BR>
 * Date:2012-3-12<BR>
 * 
 * @version 1.00
 * @author CODYY)peijiangping
 */ 
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>
     * Date:2012-3-12 <BR>
     * 
     * @author CODYY)peijiangping
     */ 
    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="获取手机号" />

希望本文所述对大家的Android程序设计有所帮助。

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多