GsmCellLocation给出空值..?

时间:2012-01-03 10:52:43

标签: android android-emulator gps

我想显示单元格位置,ID和区号。但是,当我运行应用程序时,它给我一个运行时错误。从调试角度来看,我看到GsmCellLocation对象产生一个空值。 (cellLocation == null如果我调试)

这是我的示例代码:

TelephonyManager teleplonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation cellLocation = (GsmCellLocation)teleplonyManager.getCellLocation();

int cid = cellLocation.getCid();
int lac = cellLocation.getLac();

textGSMCellLocation.setText(cellLocation.toString());
textCID.setText("gsm cell id : "+String.valueOf(cid));
textLAC.setText("gsm location area code : "+String.valueOf(lac));

这是我的menifest.xml

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

1 个答案:

答案 0 :(得分:1)

The Docs中说:

  

返回设备的当前位置。如果当前位置不可用,则返回null。

重申:它返回null,因为当前位置不可用。

可能是位置提供商被禁用或者根本找不到位置。

在任何情况下,如果您需要位置,最好使用LocationManager,因为它专为位置更新而设计,并且比TelephonyManager.getCellLocation();

更有用的方法