getCellInfo() returns a list of cells records, rather than broadcast
intent itself.
Keep reference to the TelephonyManager instance in variable.
Listen for changes to the signal strengths only between start() and stop().

Synchronize access to mSignalStrength since the cell scanning timer task is executed in a different thread.
Abstract CellScanner and create default implementation.

This will allow to create different implementations of CellScanner using capabilities of newers API
(for example, getAllCellInfo() in API level 17), or using some non-standart API (Multimple SIM).
Move CellScanner related code into cellscanner package
add CDMA logging
cleanup
Remove mSignalStrength synchronization
Coding style fixes.

Suggested by @cpeterso
Use MCC/MNC of the SIM if getNetworkOperator() result is unreliable