使用android的位置区号

时间:2016-04-15 04:45:05

标签: android location

我想在我的Android应用程序中获取单元格ID和位置区域代码(由网络运营商提供)。

如果有人能帮我解决上述问题。

2 个答案:

答案 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());
        }
    }