gpt4 book ai didi

java - TextToSpeech 动态交互

转载 作者:行者123 更新时间:2023-12-01 12:47:44 26 4
gpt4 key购买 nike

我正在使用 TextToSpeech 向我的联系人中的某人发送短信。我使用一种非常丑陋的方式来做到这一点,因为我需要以一种方式说出所有表达式“发送消息到联系人短信是你好”。最好是像“发送消息”这样的应用程序询问我给谁并以这种方式继续。这样我现在就可以以动态方式与像谷歌这样的应用程序进行交互。到目前为止我使用的代码是这个:

if(resultList.getText().toString().toLowerCase().contains(getResources().getString(R.string.messaggio))) //invio sms
{

splitMessage = message.split(getResources().getString(R.string.destinatario), 2);
if(splitMessage.length>1){

if((splitMessage[0].trim()).equalsIgnoreCase(getResources().getString(R.string.inviamessaggio)))
{

splitMessage[0] = "message";
splitMessage[1] = splitMessage[1].trim();
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);


splitMessageWithNameAndBody = splitMessage[1].split(getResources().getString(R.string.testomessaggio), 2);
if(splitMessageWithNameAndBody.length>1)
{
splitMessage[0] = "text message";
while (phones.moveToNext())
{
String Name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String Number=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

splitMessage[1] = splitMessageWithNameAndBody[0].trim();
splitMessageWithNameAndBody[1] = splitMessageWithNameAndBody[1].trim();
if(Name.compareToIgnoreCase(splitMessage[1])== 0)
{
nameMatchFound = true;
flag=1;
String url = "sms:"+Number;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.putExtra("sms_body", splitMessageWithNameAndBody[1]);
startActivity(intent);
}
}


if(!nameMatchFound)
{
Toast.makeText(getApplicationContext(), "Contatto non trovato o ci sono più corrispondenze", Toast.LENGTH_SHORT).show();
DialogFragment df=new DialogTrial();
df.show(getSupportFragmentManager(), "MyDialog");

}
} else {
//Toast.makeText(getApplicationContext(), "Please say contact name followed by call or message keyword", Toast.LENGTH_LONG).show();
while (phones.moveToNext()){
String Name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String Number=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if(Name.compareToIgnoreCase(splitMessage[1]) == 0){
nameMatchFound = true;

String url = "sms:"+Number;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.putExtra("sms_body", splitMessageWithNameAndBody[1]);
startActivity(intent);
}
}
}
}

else
{
Toast.makeText(getApplicationContext(), "Please say contact name followed by call keyword", Toast.LENGTH_LONG).show();
}
}
//break;

}

如果没有找到任何对应关系,它会要求我在联系人中搜索正确的姓名。顺便问一下,我想要做的事情可能吗?谢谢

最佳答案

这可能吗?当然。我编写了一个应用程序,它可以执行类似的操作 - 它读出文本,询问您是否要回复,然后询问您的回复(如果是),然后读取它并在发送之前要求确认。本质上,您需要制作一个状态机,以便您知道如何处理收到的响应以及为下一个输入说出什么内容。

关于java - TextToSpeech 动态交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24526633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com