我想在我的Android应用程序中获取单元格ID和位置区域代码(由网络运营商提供)。
如果有人能帮我解决上述问题。
答案 0 :(得分:1)
您应该在AndroidManifest.xml中添加此权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
在Java Code中,
TelephonyManager telephonyManager = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation gsmCellLocation = (GsmCellLocation)telephonyManager.getCellLocation();
int cid = gsmCellLocation.getCid() & 0xffff; // GSM cell id
int lac = gsmCellLocation.getLac() & 0xffff; // GSM Location Area Code
我有GSM的小区ID和位置区号。
但对于UMTS,getCid()返回一个大数字,例如33 187 589.所以我添加了模运算符(例如:gsmCellLocation.getCid()&amp; 0xffff)。
快乐编码:)
答案 1 :(得分:0)
这很有效。
final TelephonyManager telephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (telephony.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
final GsmCellLocation location = (GsmCellLocation) telephony.getCellLocation();
if (location != null) {
lac.setText("LAC: " + location.getLac() + " CID: " + location.getCid());
}
}