andriod获取带字母的iccid

在iccid没有字母的 时候可以用如下代码

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
iccid = tm.getSimSerialNumber();

但有字母的时候,获取不到20位,在硬件小哥的建议下使用at命令。一开始苦于找不到at的串口,后来直接把4g模组给拆下来,对比后发现少了5个串口,然后一个个试就成功了,以下是实现代码

    void Receive(String file) {
        RandomAccessFile localRandomAccessFile = null;
        try {
            localRandomAccessFile = new RandomAccessFile(file, "r");
            byte[] arrayOfByte = new byte[1024];
            int readSize = 0;
            while ((readSize = localRandomAccessFile.read(arrayOfByte)) == -1) {

            }
            String response = new String(arrayOfByte).substring(0, readSize);
            LogUtils.e("re:"+response);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }
    void Send(String file, String cmd){
        RandomAccessFile localRandomAccessFile = null;
        try {
            localRandomAccessFile = new RandomAccessFile(file, "rw");
            localRandomAccessFile.writeBytes(cmd + "\r\n");
            localRandomAccessFile.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

读写方法只用来测试,根据业务还可以优化

        String com = "/dev/ttyUSB3";
        Send(com,"at+qccid");
        Receive(com);

不同4g模组ccid的指令可能不同,我在网上看的就和我这个不一样,可以测试一下,我这边有模组的文档还是比较好的

后面两个不完全的就是用安卓接口获取的,可以看到从英文f后都被过滤了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值