Android 如果呼叫处于摘机状态,则停止tts
我正在做一个应用程序,它会在铃声响起4秒后说出呼叫者的名字。问题是它会在两到三声铃声后说出呼叫者的名字。问题是,即使呼叫处于摘机或空闲状态,它也会一直说出呼叫方的名字,我不希望这样 广播接收机onreceive中的代码为Android 如果呼叫处于摘机状态,则停止tts,android,Android,我正在做一个应用程序,它会在铃声响起4秒后说出呼叫者的名字。问题是它会在两到三声铃声后说出呼叫者的名字。问题是,即使呼叫处于摘机或空闲状态,它也会一直说出呼叫方的名字,我不希望这样 广播接收机onreceive中的代码为 state = bundle.getString(TelephonyManager.EXTRA_STATE); if(state.equals( TelephonyManager.CALL_STATE_OFFHOOK)) {
state = bundle.getString(TelephonyManager.EXTRA_STATE);
if(state.equals( TelephonyManager.CALL_STATE_OFFHOOK))
{
System.out.println("fjkerj");
}
else if(state.equals( TelephonyManager.CALL_STATE_IDLE))
{
}
else if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
{
System.out.println("Entered Receiver");
final String phonenumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
// String info = "Detect Calls sample application\nIncoming number: " + phonenumber;
AudioManager amanager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
switch (amanager.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
System.out.println("Silent");
break;
case AudioManager.RINGER_MODE_VIBRATE:
System.out.println("Vibrate");
break;
case AudioManager.RINGER_MODE_NORMAL:
amanager.setStreamVolume(AudioManager.STREAM_RING,1, 0);
Handler handler=new Handler();
Runnable r=new Runnable()
{
public void run()
{
if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
{
Intent IncomingNumberIntent = new Intent(context1,SpeakOut.class);
IncomingNumberIntent.putExtra("PhoneNumber", phonenumber);
context1.startService(IncomingNumberIntent);
}
}
};
handler.postDelayed(r, 3000);
如果通话处于响铃状态且情景模式正常,则会转到服务并说出姓名,但
即使呼叫已挂断,应用程序仍会说出该名称的问题。将代码更改为
int state = bundle.getInt(TelephonyManager.EXTRA_STATE);
switch (state)
{
case TelephonyManager.CALL_STATE_OFFHOOK:
System.out.println("fjkerj");
break;
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_RINGING:
// Your code goes here
}
从run()方法中删除if语句
if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
哦,谢谢,我使用了一个界面和一个电话状态监听器,你的想法在+1的条件下工作得很好