获取手机sim卡信息

package com.util;

import android.content.Context;
import android.provider.Settings.System;
import android.telephony.TelephonyManager;

/**
 * @author huangxj
 * 获取用户sim卡信息
 *
 */
public class SimUtil {
    
    private static  TelephonyManager tmManager;
    
    
    public  static void setTelephonyManager(Context context){
        tmManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
        
    }
    /**获取imsi信息
     * @param context
     */
    public static String getSubcribId(){    
        
        return tmManager.getSubscriberId();
    }
    /**获取sim手机号码
     * @param context
     */
    public static String getSimNumber(){    
        
        return tmManager.getLine1Number();
    }
    /**获取设备ID
     * @param context
     */
    public static String getDeviceId(){    
        
        return tmManager.getDeviceId();
    }
    /**获取设备运营商名称
     * @param context
     */
    public static String getSimOperatorName(){    
        
        return tmManager.getSimOperatorName();
    }
    /**返回运营商编号
     * @param context
     */
    public static int getOperator(){    
        
         String imsi = getSubcribId();

         if(imsi!=null){
             if(imsi.startsWith("46000") || imsi.startsWith("46002"))

             {     //因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号
                 //中国移动
                 return 0;

             }else if(imsi.startsWith("46001")){

                 //中国联通
                 return 1;

             }else if(imsi.startsWith("46003")){

                 //中国电信
                 return 2;

              }
         }
         return -1;
    }

}


=================================== 分割 ==================================

之前封装的不够好,现在改版下!

package com.meiya.util;
import java.util.UUID;

import android.content.Context;
import android.provider.Settings.System;
import android.telephony.TelephonyManager;

/**
 *
 * @Description: 获取手机相关

 * @File: SimUtil.java

 * @Paceage com.meiya.util

 * @Author huangxj

 * @Date 上午9:47:25

 * @Version
 */


public class SimUtil {
    
    public static final String TAG  = "SimUtil";
    
    private static  TelephonyManager tmManager;
    
    private static SimUtil instance = null;
    
    private SimUtil(){
        
    }
    
    public static SimUtil getInstance(Context mContext){
        
        if(instance == null){
            instance = new SimUtil();
        }
        
        instance.setTelephonyManager(mContext);
        
        instance.printInfo();
        
        return instance;
    }
    
    
    private void setTelephonyManager(Context context){
        
        tmManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
        
    }
    /**获取imsi信息
     * @param context
     */
    public String getSubcribId(){    
        
        try {
            
            return tmManager.getSubscriberId();
    
        } catch (Exception e) {
            
            return null;
        }
    }
    /**获取sim手机号码
     * @param context
     */
    public String getSimNumber(){
        
        try {
            
            return tmManager.getLine1Number();
    
        } catch (Exception e) {
            
            return null;
        }
    }
    /**获取设备ID
     * @param context
     */
    public String getDeviceId(){   
        
        try {
            
            return tmManager.getDeviceId();
    
        } catch (Exception e) {
            
            return null;
        }
        
    }
    /**获取设备运营商名称
     * @param context
     */
    public String getSimOperatorName(){    
        
        try {
            
            return tmManager.getSimOperatorName();
    
        } catch (Exception e) {
            
            return null;
        }
    }
    /**返回运营商编号
     * @param context
     */
    public int getOperator(){    
        
         String imsi = getSubcribId();

         if(imsi!=null){
             if(imsi.startsWith("46000") || imsi.startsWith("46002"))

             {     //因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号
                 //中国移动
                 return 0;

             }else if(imsi.startsWith("46001")){

                 //中国联通
                 return 1;

             }else if(imsi.startsWith("46003")){

                 //中国电信
                 return 2;

              }
         }
         return -1;
    }
    /**
     * 获取设备的唯一识别码 UUID
     * @return
     */
    public String getUUID(){
        
        String tmDevice, tmSerial, tmPhone, androidId;
        
        tmDevice = "" + getDeviceId();
        
        Logger.log(TAG + "tmDevice = " + tmDevice);

        UUID deviceUuid = new UUID(tmDevice.hashCode(), (long)tmDevice.hashCode() << 32);
        
        String uniqueId = deviceUuid.toString();
        
        return uniqueId;
    }
    
    private void printInfo(){
        
        Logger.log(TAG + "DeviceID = " + getDeviceId() + " phoneNumber = "+getSimNumber() +" imsi = "+ getSubcribId() +" operator = "+ getSimOperatorName());
    }
}


你可能感兴趣的:(获取手机sim卡信息)