android - 如何通过 SIM_IO 从 sim 卡读取 MSISDN?

标签 android c android-ndk

我需要在android中阅读MSISDN,但我们必须使用.c来完成它。 我打开一个套接字将 RIL_REQUEST_SIM_IO 发送给 ril。这是日志。

D/RILC    (  106): [0004]> SIM_IO (cmd=0xB2,efid=0x6F40,path=3F007F10,1,4,30,(null),pin2=(null),aid=(null))
...
D/RILC    (  106): [0004]< SIM_IO {sw1=0x90,sw2=0x0,ffffffffffffffffffffffffffff0891684125205260f5ffffffffff}

我是否使用了正确的参数(P1 = 1、P2 = 4、P3 = 30)?

如何通过响应获取手机号码?

谢谢!☺

最佳答案

你的困惑是什么?你想知道你对卡片说了什么?所有这些信息都在 ISO 7816-4 和一些其他规范中,但这里是您所做操作的详细信息:

您向 SIM (0xB2) 发送了读取记录命令 您要求路径:

3F00 -> (MF)
7F10 -> (DF_TELECOMM)
6F40 -> (MSISDN)

你设置参数:

P1 (record)                   = 1  (record 1)
P2 (reference control)        = 4  (this mean use record number set in P1)
P3 (Le meaning bytes to read) = 30 (bytes)

你得到了成功(SW 代表状态字,你得到 SW1/SW2 = 0x9000,这意味着成功)和数据(0xffffffffffffffffffffffffffffff0891684125205260f5ffffffffff)

结帐 E.164关于解析您的 MSISDN。

关于android - 如何通过 SIM_IO 从 sim 卡读取 MSISDN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15361302/

相关文章:

android - 为个人用户组织 Firebase 数据库,想法?

android - Qt:在 Android 和 iOS 上设置应用程序图标

c++ - valgrind 提示在 c 中做了一个非常简单的 strtok

c - 有没有办法将 FILE* 的内容复制到文件描述符?

C 循环中的情况问题

android - 错误 :Execution failed for task org. gradle.process.internal.ExecException: 'finished with non-zero exit value 2

android - 从 Firebase 中的嵌套查询填充回收器 View

android - 传递简历 :Mat from android to jni

android - OpenCV Android native 代码构建问题

android - FFmpeg 示例代码,用于从静止图像 JNI Android 创建视频文件