好的,我正在创建一个Android应用程序,我确实想从这里的输入中获取数字mostLikelyThingHeard
我的代码因某些原因无法正常工作。
例如,当用户说:bel 0612345678
拨号器必须拨打0612345678
String one = "bel";
if (mostLikelyThingHeard.contains(one)) {
String numbers = mostLikelyThingHeard.replaceAll("[^0-9]", "");
Intent call = new Intent(Intent.ACTION_DIAL);
call.setData(Uri.parse("tel:" + numbers));
tts.speak(numbers + " wordt gebeld.",
TextToSpeech.QUEUE_FLUSH, null);
found = true;
}
我还在AndroidManifest.xml中添加了正确的权限,我想代码是错误的。
答案 0 :(得分:0)
你能试试吗
Intent.ACTION_CALL
并确保您在清单文件
中的应用程序标记之前使用此标记<uses-permission android:name="android.permission.CALL_PHONE" />
答案 1 :(得分:0)
您可以使用正则表达式并删除非数字。
str = str.replaceAll("\\D+","");
答案 2 :(得分:0)
试试这个......
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + yours_numbers_values));
startActivity(intent);
答案 3 :(得分:0)
您需要从String中获取数字:
String numbers = mostLikelyThingHeard.replaceAll("[^\\d]", "");
要拨打该号码,您可以使用ACTION_CALL。 ACTION_DIAL将只打开一个带有该号码的拨号屏幕。此外,您已初始化意图,但您缺少对startActivity(intent)
的呼叫
Intent call = new Intent(Intent.ACTION_DIAL);
call.setData(Uri.parse("tel:" + numbers));
startActivity(call);
希望这有帮助。
答案 4 :(得分:0)
String one = "bel";
String mostLikelyThingHeard="bel 0612345678";
if (mostLikelyThingHeard.contains(one)) {
String numbers = mostLikelyThingHeard.replaceAll("[^0-9]", "");
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+Uri.encode(numbers.trim())));
startActivity(callIntent);
tts.speak(numbers + " wordt gebeld.",
TextToSpeech.QUEUE_FLUSH, null);
found = true;
}
在Manifest中添加权限
<uses-permission android:name="android.permission.CALL_PHONE" ></uses-permission>