拨打带*字符的电话号码

时间:2012-01-30 19:04:29

标签: android android-emulator android-intent

我的Android应用程序失败,所有正常数字都运行良好。

我发现苹果明确禁止拨打此类号码,因为担心呼叫转发技巧,但我无法找到记录的原因,因为Android SDK上的这个失败

你能指出我的原因吗?

由于

2 个答案:

答案 0 :(得分:1)

可能你的意思是拨打USSD代码。如果是这样 - 那么这是一个漫长而有趣的故事,因为它仍然在Android功能请求中(请看Feature Request: Add USSD API support)。

据我所知,使用Uri.encode的唯一解决方法是作为解决方案:

startActivity(new Intent(Intent.ACTION_CALL, Uri.parse(“tel:” + Uri.encode(strPhoneNumber))));

并且您还需要清单文件中的这些权限:

android.permission.CALL_PHONE
android.permission.CALL_PRIVILEGED 
android.permission.MODIFY_PHONE_STATE 

答案 1 :(得分:1)

我也有这个问题,我觉得最后的答案是对的,但我建议你用这个代码来拨打* 8373这样的号码

String star = Uri.encode("*");
        String Hash = Uri.encode("#"); // if you want use # to add in your number! :)
        Intent call = new Intent(Intent.ACTION_CALL);
        Charge.setData(Uri.parse("tel:" + star +"8373"));
        startActivity(Charge);