添加#31#时无法拨打电话

时间:2012-10-25 09:44:27

标签: android phone-call

我正在尝试从我的应用程序实现调用工具。当某些条件成立时,我通过在我的号码前添加#31#来隐藏我的来电显示。虽然如果没有添加#31#,呼叫完全没问题,但是当添加#31#时,会弹出空白屏幕,好像正在加载手机应用程序,我的应用程序屏幕会回来。我的代码片段就是这个

        String ph = "123456789";            
        String phNumber;
        if (hideCallerId) {
            phNumber = "#31#" + ph;
        }
        else {
            phNumber = ph; 
        }

        Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+phNumber));
        startActivity(intent);

案例1:当phNumber为123456789时,则调用没有问题。

案例2 当phNumber为#31#123456789时,弹出空白屏幕,用户返回我的应用程序界面。

虽然当我使用#31#123456789从我的设备拨号时,呼叫已成功完成。 我错过了什么。任何人都可以帮助我。

链接没有帮助我Link1。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

这不是一个真正的答案,但我的代表不够高,无法发表评论。您是否有机会将声明声明为int或其他任何内容?也许#会弄乱它?

如果这不起作用,您是否尝试使用ACTION_DIAL? android开发者网站有更多关于它们之间差异的信息here。希望它有所帮助。

答案 1 :(得分:1)

您只需对电话号码进行编码即可。

String phonenumber = "03012345,1234,#31#,98765"; // , = pauses
encodedPhonenumber = URLEncoder.encode(phonenumber, "UTF-8");
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + encodedPhonenumber)));

你可能想看一下这个。 Not able to make a call when #31# is added

答案 2 :(得分:0)

您需要对'#'进行编码,因为 的行为类似于拨号命令 ,然后如果您使用以{开头的数字设置行动呼叫意图数据{1}},它会拨打一个空白号码,尝试拨打 8488449#848 这样的号码,如果没有编码则拨打 {{1 <}> 这就是为什么你需要用'#'编码至少8488449符号的原因 例如拨打8488449#848,我将执行以下操作: '#'

相关问题
最新问题