如何在 Android 中获取无线电网络控制器 (RNC)?
问问题
1589 次
2 回答
4
如果网络类型是 UMTS/HSxPA/HSPA+,RNC id 是 4 字节 Cell Id(3GPP 25.401,第 6.1.5 节)的前 2 个字节。
于 2012-11-05T17:37:43.853 回答
3
基于此,请查看我的代码如何轻松获取 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) 只是为了让我分开将传递哪个参数。
于 2013-01-28T15:30:08.827 回答