When i run the android emulator i get this as radio logs for signal strength:
D/RIL ( 32): onRequest: SIGNAL_STRENGTH
D/AT ( 32): AT> AT+CSQ
D/AT ( 32): AT< +CSQ: 7,99
D/AT ( 32): AT< OK
E/RILC ( 32): invalid response length
D/RILJ ( 216): [0062]< SIGNAL_STRENGTH error: com.android.internal.telephony.CommandException: INVALID_RESPONSE
Can someone please tell me why the following response appears?
E/RILC ( 32): invalid response length
D/RILJ ( 216): [0062]< SIGNAL_STRENGTH error: com.android.internal.telephony.CommandException: INVALID_RESPONSE
Since the AT commands and its response is fine.
I solved the problem. In case any one else in the future has the same problem heres the solution:
When i query the modem with AT command for signal strength it sent back 2 integer values.
Check the ril.cpp file, in the function responseRilSignalStrength, the implementation is for the new ril. The ril i used was the old one.
Therefore, the reference-ril reports signal strength as 2 integers. This is marked as deprecated in responseRilSignalStrength() in libril/ril.cpp of the version 2 sources, and this part has just been removed in the ics source. When I put it back in, the error disappeared.
I found this answer from https://groups.google.com/forum/?fromgroups=#!topic/android-x86/zEPIfsQAuYg