模拟器的拨号屏幕中缺少#符号

时间:2014-07-21 17:15:03

标签: android

Android:#(哈希)符号不会显示在模拟器的拨号界面或真实设备中!

它只显示*和数字?我怎么把它发送到拨号屏幕?但是我使用了另一个动作,如(Intent.ACTION_CALL),但同样的结果没有任何变化!

 Inetent i = new Intent(Intent.ACTION_DIAL);
 i.setData(Uri.parse("tel:1234567890*#")); 
 startActivity(i);

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

#symbol 有一个special meaning in URIs,因此您必须使用Uri.encode()方法对其进行编码,如下所示:

    Inetent i = new Intent(Intent.ACTION_DIAL);
    i.setData(Uri.parse("tel:" + Uri.encode("1234567890*#")));
    startActivity(i);

或者您可以使用特殊字符映射来启动#key as

    Inetent i = new Intent(Intent.ACTION_DIAL);
    i.setData(Uri.parse("tel:" + "1234567890*" + "%23")));
    startActivity(i);

答案 1 :(得分:0)

Intent i = new Intent(Intent.ACTION_DIAL);
        final String encodedHash = Uri.encode("#");
         i.setData(Uri.parse("tel:1234567890*"+encodedHash)); 
         startActivity(i);

'#'保留给Uri ..请参阅:http://developer.android.com/reference/android/net/Uri.html