Android gives the office to know the approaching number and talk it by the assistance of android discourse programming interface and communication director.
Here, we are going to build up a fundamental android application that talks the approaching number while telephone is in ringing mode.
In the following page, we will see the full form of this application that talks the guest name and gives the setting choice to change the velocity rate and pitch. Additionaly, it gives alternative to include content previously, then after the fact the approaching number or guest name.
<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>
package com.example.callertalker; import java.util.Locale; import android.media.AudioManager; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.util.Log; import android.widget.Toast; import android.speech.tts.TextToSpeech; public class MainActivity extends Activity implements TextToSpeech.OnInitListener { private TextToSpeech tts; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tts = new TextToSpeech(this, this); TelephonyManager telephonyManager = (TelephonyManager)getSystemService( Context.TELEPHONY_SERVICE); PhoneStateListener callStateListener = new PhoneStateListener() { public void onCallStateChanged(int state, String incomingNumber){ if(state==TelephonyManager.CALL_STATE_RINGING){ tts.speak(incomingNumber+" calling", TextToSpeech.QUEUE_FLUSH, null); Toast.makeText(getApplicationContext(),"Phone is Ringing : "+incomingNumber, Toast.LENGTH_LONG).show(); } if(state==TelephonyManager.CALL_STATE_OFFHOOK){ Toast.makeText(getApplicationContext(),"Phone in a call or call picked", Toast.LENGTH_LONG).show(); } if(state==TelephonyManager.CALL_STATE_IDLE){ //phone is neither ringing nor in a call } } }; telephonyManager.listen(callStateListener,PhoneStateListener.LISTEN_CALL_STATE); } @Override public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { int result = tts.setLanguage(Locale.US); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { Log.e("TTS", "This Language is not supported"); } else { } } else { Log.e("TTS", "Initilization Failed!"); } } @Override public void onDestroy() { // Don't forget to shutdown tts! if (tts != null) { tts.stop(); tts.shutdown(); } super.onDestroy(); } }
Leave a Reply