ActionDial不会在呼叫屏幕中显示#

时间:2016-08-27 10:25:53

标签: c# xamarin xamarin.android

我在这段代码中遇到问题,为什么不在调用屏幕中显示#?

intent.button.Click += delegate {
   var uri = Android.Net.Uri.Parse ("tel:*177*1112223333#");
   var intent = new Intent (Intent.ActionDial, uri);
   StartActivity (intent);
};

2 个答案:

答案 0 :(得分:0)

你必须对Uri进行编码(转义)以发送"#"给拨号器:

var uri = Android.Net.Uri.Parse("tel:" + Android.Net.Uri.Encode("*177*1112223333#"));
var intent = new Intent(Intent.ActionDial, uri);
StartActivity(intent);

enter image description here

参考:RFC 3966

答案 1 :(得分:0)

除了使用#之外,还可以使用Android.Net.Uri.Encode("#")

intent.button.Click += delegate {
                var uri = Uri.Parse("tel:*177*1112223333" + Uri.Encode("#"));
                var intent = new Intent(Intent.ActionDial, uri);
                StartActivity(intent);
            };

您也可以尝试将#替换为%23

intent.button.Click += delegate {
                var uri = Uri.Parse("tel:*177*1112223333%23");
                var intent = new Intent(Intent.ActionDial, uri);
                StartActivity(intent);
            };