【问题标题】:Android Radio Interface Layer (RIL) and /dev/Android 无线电接口层 (RIL) 和 /dev/
【发布时间】:2012-01-19 17:46:57
【问题描述】:

有谁知道 RIL(/hardware/reference/reference-ril/)如何确定基带无线电启动时在 /dev/ 中安装的内容?

在旧手机和其他文档中,GSM 手机使用 /dev/smd0。并非所有手机都使用 /dev/smd0。我正在尝试确定一种方法来找出安装的内容,而不管收音机和供应商的类型如何。

如果有人可以明确识别 /hardware/reference/reference-ril/ 中的哪个位置,我可以看到它在哪里设置以及它在初始化时从哪里提取信息,那将是完美的。

【问题讨论】:

    标签: android automount ril


    【解决方案1】:

    RIL 在您的应用程序框架中。

    如果您想查看 RIL 并使用命令提示符实现该功能,它就完成了。 有以下命令:

    void (*RIL_RequestFunc) (int request, void *data, size_t datalen, RIL_Token t);
    

    我是从这里找到的:

    您对此很认真,请通过链接: RIL Study LInk

    如果您想了解示例: GIT HUB

    【讨论】:

      【解决方案2】:

      这实际上取决于您用于连接的接口。您可以使用 USB、UART 或 SPI 接口将上层与调制解调器连接。 RIL_Init 函数中传递的参数确定您尝试连接的设备。如果您想具体了解这是在哪里完成的,请参阅reference-ril.c 中的RIL_Init 函数。

      const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv)
      

      {

      int ret;
      
      int fd = -1;
      int opt;
      pthread_attr_t attr;
      
      s_rilenv = env;
      
      while ( -1 != (opt = getopt(argc, argv, "p:d:s:"))) {
          switch (opt) {
              case 'p':
                  s_port = atoi(optarg);
                  if (s_port == 0) {
                      usage(argv[0]);
                      return NULL;
                  }
                  RLOGI("Opening loopback port %d\n", s_port);
              break;
      
              case 'd':
                  s_device_path = optarg;
                  RLOGI("Opening tty device %s\n", s_device_path);
              break;
      
              case 's':
                  s_device_path   = optarg;
                  s_device_socket = 1;
                  RLOGI("Opening socket %s\n", s_device_path);
              break;
      
              default:
                  usage(argv[0]);
                  return NULL;
          }
      }
      
      if (s_port < 0 && s_device_path == NULL) {
          usage(argv[0]);
          return NULL;
      }
      
      sMdmInfo = calloc(1, sizeof(ModemInfo));
      if (!sMdmInfo) {
          RLOGE("Unable to alloc memory for ModemInfo");
          return NULL;
      }
      pthread_attr_init (&attr);
      pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
      ret = pthread_create(&s_tid_mainloop, &attr, mainLoop, NULL);
      
      return &s_callbacks;
      

      }

      我希望现在一切都清楚了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多