2011-12-13 33 views
12

有誰知道RIL(/硬件/參考/參考RIL /)如何確定要被安裝在的/ dev /時基帶無線電裝置被啓動?Android的無線接口層(RIL)和/ dev/

在舊手機和其他文件,GSM手機使用/ dev/SMD0。並非所有電話都使用/ dev/smd0。我正試圖確定一種方法來查找無論廣播和供應商的類型如何被安裝。

如果有人能明確查明在/硬件/參考/參考RIL /我能看到它被設置並在它從在初始化時拉動信息,這將是完美的。

回答

7

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

,如果你想看到的RIL,並實現與使用命令的功能提示它完成。 有如下命令:

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

我發現這個從這裏:

你是認真對待這個請到通過鏈接: RIL Study LInk

如果您想了解例如: GIT HUB

0

它實際上取決於你用來連接的接口。您可以使用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; 

}

我希望事情現在是明確的。