Lista de API de Android <cellinfo>

Quisiera conseguir los datos de CellInfo, pero el cellinfo.size () siempre ocurre el NullPointerException en emulador.

Enlace de CellInfo

No estoy seguro de la situación de excepción, nadie sabe la razón?

Si escribí el código equivocado? O alguien se reunió la misma excepción?

TelephonyManager TM = (TelephonyManager) this .getSystemService(Context.TELEPHONY_SERVICE); List<CellInfo> cellinfo = TM.getAllCellInfo(); Log.d("AA",Integer.toString(cellinfo.size())); 

Algunas informaciones de telefonía están protegidas por permisos. Su aplicación no puede acceder a la información protegida a menos que tenga los permisos adecuados declarados en su archivo de manifiesto.

TelephonyManager.getAllCellInfo() no se implementa en muchos dispositivos y la función siempre devolverá null.

Vea mi respuesta aquí: getAllCellInfo devuelve null en android 4.2.1

Tuve el mismo problema y funcionó sólo en s4.hence tuvo que eliminar el oyente de información de la célula (PhoneStateListener.LISTEN_CELL_INFO) inorder para trabajar.

TelephonyManager.getAllCellInfo() se agrega en el nivel 17 de API, por lo que puede utilizarlo en Api Level 17 y +.

También debe agregar el permiso ACCESS_COARSE_LOCATION a su archivo de manifiesto:

Devoluciones
Lista de CellInfo o null si la información no está disponible.
Requiere permiso: ACCESS_COARSE_LOCATION

Ver documentos

Así que tuve el mismo problema! El CellInfo es nulo, porque no pusimos nada. Así que trato de ayudar al oyente un poco. Lo forzo a conseguir .getAllCellInfo en el oyente. Aquí es lo que funciona para mí.

  class MyPhoneStateListener extends PhoneStateListener { int signal; String cellList; @Override public void onCellInfoChanged(List<CellInfo> cellInfo) { super.onCellInfoChanged(cellInfo); cellInfo = Tel.getAllCellInfo(); if (cellInfo!=null) cellList = cellInfo.toString(); else cellList="ni mierda"; mSignalStrengthView.append("" + String.valueOf(cellList)); } @Override public void onSignalStrengthsChanged(SignalStrength signalStrength) { super.onSignalStrengthsChanged(signalStrength); signal = signalStrength.getGsmSignalStrength()*2-113; mSignalStrengthView.append("GSM signal strength is " + String.valueOf(this.signal)); } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.