If I am not wrong than you are going to implement it using Java in that case I would suggest 3rd Option.
Option 3: Write your own wrapper on top of existing TelephonyManager and extend the feature functionality.
I am not sure how deep you are going to change the existing API but in case you are going to enhance the feature than this option seems good.