嗨我正在制作一个应用程序,通过短信自动/激活呼叫转移,除了解析呼叫转发代码的一些字符外,所有工作都正常。
这是执行呼叫转发代码的代码,此代码记录在此处:http://en.wikipedia.org/wiki/Call_forwarding#Keypad_codes
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+Uri.encode("#")+Uri.encode("#")+"21"+Uri.encode("#")));
((Intent)callIntent).addFlags(268435456);
this.context.startActivity((Intent)callIntent);
取消呼叫的代码是## 21#但是我的应用程序总是出现错误,看起来它无法读取我上面发布的命令,但是如果我将手动拨打它就可以了..
答案 0 :(得分:1)
尝试使用ACTION_DIAL而不是ACTION_CALL来表示** 21 *和## 21# 查看此link,我认为它具体解决了您的问题。
这是TLDR:
String uri = "**21*268435456#"; // ##21#268435456#
Intent intent = new Intent(Intent.ACTION_DIAL); // ACTION_CALL
Uri uri2 = Uri.fromParts("tel", uri, "#");
intent.setData(uri2);
startActivity(intent);