Android - получить RNC (контроллер радиосети)

Как получить контроллер радиосети (RNC) в Android?

http://en.wikipedia.org/wiki/Radio_Network_Controller

2 ответа

Решение

Идентификатор RNC - это первые 2 байта 4-байтового идентификатора соты (3GPP 25.401, раздел 6.1.5), если тип сети UMTS/HSxPA/HSPA+.


Исходя из этого, посмотрите мой код, как вы можете легко получить RNCID + CID:
Преобразовать CID в ByteArray:

public static byte[] convertByteArray__p(int p_int){
    byte[] l_byte_array = new byte[4];
    int MASK_c = 0xFF;
    for (short i=0; i<=3; i++){
        l_byte_array[i] = (byte) ((p_int >> (8*i)) & MASK_c);
    }
    return l_byte_array;
} 


Получите RNCID и CID:

public int getRNCID_or_CID__p(byte[] p_bytes, short p_which){
    int MASK_c = 0xFF;
    int l_result = 0;   
    if (p_which == Constants.CID_C) {
        l_result = p_bytes[0] & MASK_c ;
        l_result = l_result + ((p_bytes[1] & MASK_c ) << 8);
    } else if (p_which == Constants.RNCID_C){
        l_result = p_bytes[2] & MASK_c ;
        l_result = l_result + ((p_bytes[3] & MASK_c ) << 8);
    } else { 
        g_FileHandler.putLog__p('E', "getRNCID_or_CID__p invalid parameter");
    }
    return l_result;     
}

Тогда вы можете легко позвонить так:

    byte[] l_byte_array = new byte[4];
    l_byte_array = convertByteArray__p(l_cid);
    int l_RNC_ID   = getRNCID_or_CID__p(l_byte_array,Constants.RNCID_C);
    int l_real_CID = getRNCID_or_CID__p(l_byte_array,Constants.CID_C);

Константы RNCID_C(1) и CID_C(2) являются только константами, только для меня, чтобы отделить, какой параметр будет передан через.

Другие вопросы по тегам