2013-03-20 47 views
0

我试图通过调用代码,电话卡,并希望以下URI发送到意向:如何Android处理在PHONENUMBER的+ - 符号

accessnumber +暂停+ PHONENUMBER +#

数字来自地址列表,但我如何处理+(如退出代码),因为例如在欧洲00的州011中。我想我不能仅仅将它发送到意图。有没有办法解决这个问题?

问题是电话卡想要加号为00或011。

String uri = "tel:" + Uri.encode(phonenumber) 

try { 
       Intent intentCall = new Intent(Intent.ACTION_CALL); 
       intentCall.setData(Uri.parse(uri)); 
       startActivity(intentCall); 
       } catch (ActivityNotFoundException e)  { } 
+0

为什么你不能把它发送到意图?你有没有尝试过? – Tushar 2013-03-20 20:36:31

+0

“只是尝试”在我看来是很多错误的应用程序的来源,这些应用程序依赖非正式支持的行为,而这些行为不保证在不同版本中保留。检查文档几乎总是更好。 – Jules 2013-03-21 11:20:24

+0

此外,看看它是否在这种情况下工作将涉及在多个国家进行测试,这将是非常昂贵的... – Jules 2013-03-21 11:29:37

回答

1

的Android is documented使用rfc3966兼容电话的URI。 RFC3966指定'+'字符用于国际拨号,因此Android应识别'+'字符并进行适当的处​​理。

+0

问题是我在电话卡accessnumber后发送它,所以我必须将其调整为退出代码。我希望android可以自动调整+到该语言环境的退出代码,有没有一种方法呢? – Diego 2013-03-20 21:21:39

+0

嗯......我看到了问题。 '+'字符只在数字的开头才有效,因此不能保证能够正常工作(即使它在某些版本中可能不适用于其他版本)。你如何获得你的电话卡号码?你能否以同样的方式获得退出代码(可以想象,一些电话卡供应商可以使用不同的退出代码给用户本地的代码,例如考虑一个欧洲用户通过卡服务提供商打电话的服务是按照美国标准设置的,所以问卡提供商该做什么可能是最好的)? – Jules 2013-03-21 11:19:23

+0

是的,我想是的。如果SIM例如具有退出码,本来会很好。从现在开始,如果它是另一张卡,它就不兼容。 – Diego 2013-03-21 13:20:55