2016-04-15 56 views
0

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

如果有人能帮助我与上述。

+0

区号是指邮政编码还是PIN码? –

+0

位置区域代码和小区ID由网络运营商提供。而不是PIN码或邮政编码。 – Megamind

+0

[如何知道Android手机中的位置区域代码和单元ID](http://stackoverflow.com/questions/4152373/how-to-know-location-area-code-and-cell-id-in -roid手机) –

回答

0

This Works。

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

你应该在AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

在Java代码中添加此权限,

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 

我有小区ID和GSM的位置区域代码。

但是对于UMTS,getCid()返回一个大数字,例如33 187 589.所以我添加了模运算符(例如:gsmCellLocation.getCid()& 0xffff)。

快乐编码:)