获取手机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());
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NB-IoT的中文指令集,基于BC95 657 SP2版本翻译的。 —————————————————————— AT 命令 描述 实现的状态 3GPP Commands (27.007) AT+CGMI 查询制造商 ID B350+ AT+CGMM 查询模块型号 B350+ AT+CGMR 查询固件版本 B350+ AT+CGSN 查询模块序列号 B350+ AT+CEREG 查询网络注册状态 B350+ AT+CSCON 查询信号连接状态 B350+ AT+CLAC 列出可用命令 B350+ AT+CSQ 获取信号强度 B350+ AT+CGPADDR 显示 PDP 地址 B350+ AT+COPS 选择接入的网络 B350+ AT+CGATT PS 连接或分离 B350+ AT+CGACT 激活或停用 PDP 上下文 B657SP1+ AT+CIMI 查询国际移动设备身份码 B350+ AT+CGDCONT 定义一个 PDP 上下文 B350+ AT+CFUN 设置终端功能 B350+ AT+CMEE 报告移动终端错误 B600+ AT+CCLK 返回当前日期和时间 B656+ AT+CPSMS 省电模式设置 B657SP1+ AT+CEDRXS eDRX 设置 B657SP1+ AT+CEER 扩展错误报告 B657SP1+ AT+CEDRXRDP eDRX 阅读动态参数 B657SP1+ AT+CTZR 时区报告 B657SP1+ ETSI Commands(正在开发中) AT+CSMS 选择短消息服务 B657SP1+ AT+CNMA 模块消息提醒 B657SP1+ AT+CSCA 服务中心地址 B657SP1+ AT+CMGS 发送短消息 B657SP1+ AT+CMGC 发送短信命令 B657SP1+ AT+CSODCP 通过控制层发送原始数据 B657SP1+ AT+CRTDCP 通过控制层传送终端数据 B657SP1+ General Commands 通用命令 AT+NMGS 发送消息到 CDP 服务器 B350+ AT+NMGR 接收 CDP 服务器消息 B350+ AT+NNMI 接收消息标志 B350+ AT+NSMI 发送消息的标志 B350+ AT+NQMGR 查询接收到的消息量 B350+ AT+NQMGS 查询发送的消息量 B350+ AT+NMSTATUS 信息注册状态 B657SP1+ AT+NRB 模块重启 B350+ AT+NCDP 配置和查询 CDP 服务器设置 B350+ AT+NUESTATS 获取的操作统计 B350+ AT+NEARFCN 指定搜素频率 B350+ AT+NSOCR 创建 Socket B350+ AT+NSOST 发送数据 B350+ AT+NSOSTF 发送有标记数据 B656+ AT+NSORF 接收命令 B350+ AT+NSOCL 关闭 Socket B350+ +NSONMI 指示 Socket 消息到达(只响应) B350+ AT+NPING 测试 IP 网络连接到远程主机 B350+ AT+NBAND 设置频段 B600+ AT+NLOGLEVEL 设置日志级别 B600+ AT+NCONFIG 配置模块的功能 B650+ AT+NATSPEED 配置 UART 端口波特率 B656+ AT+NCCID 卡片识别 B657SP1+ AT+NFWUPD 通过 UART 更新固件 B657SP1+ AT+NRDCTRL 控制无线配置 B657SP1+ AT+NCHIPINFO 读取系统信息 B657SP1+ Temporary Commands 临时命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值