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

所属分类: 软件编程 / Android 阅读数: 459
收藏 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异常 java.lang.IllegalStateException解决方法

这篇文章主要介绍了Android异常 java.lang.IllegalStateException解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android中Split()字符串分割特殊用法案例详解

本文通过案例的形式给大家详细介绍了android中split()字符串分割特殊用法的知识,非常不错具有参考借鉴价值,感兴趣的朋友参考下
收藏 0 赞 0 分享

Android仿新浪微博启动界面或登陆界面(1)

这篇文章主要为大家详细介绍了Android仿新浪微博启动界面或登陆界面的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android仿新浪微博oauth2.0授权界面实现代码(2)

这篇文章主要为大家详细介绍了Android仿新浪微博oauth2.0授权界面实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android开发中使用sqlite实现新闻收藏和取消收藏的功能

本篇文章主要介绍了sqlite实现新闻收藏和取消收藏功能,主要涉及到oracle数据库方面的内容,对于Android开发sqlite实现收藏和取消功能感兴趣的朋友可以参考下本文
收藏 0 赞 0 分享

Android仿新浪微博分页管理界面(3)

这篇文章主要为大家详细介绍了Android仿新浪微博分页管理界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android UI自定义ListView实现下拉刷新和加载更多效果

这篇文章主要介绍了Android UI自定义ListView实现下拉刷新和加载更多效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android—基于微信开放平台v3SDK开发(微信支付填坑)

这篇文章主要介绍了Android—基于微信开放平台v3SDK开发(微信支付填坑),具有一定的参考价值,有需要的可以了解一下。
收藏 0 赞 0 分享

Android仿新浪微博自定义ListView下拉刷新(4)

这篇文章主要为大家详细介绍了Android仿新浪微博自定义ListView下拉刷新,重点介绍了Adapter的详细代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android控件之使用ListView实现时间轴效果

这篇文章主要介绍了Android基础控件之使用ListView实现时间轴效果的相关资料,本文是以查看物流信息为例,给大家介绍了listview时间轴的实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多