Uri.fromParts在Android模拟器上获得%2F

时间:2013-10-21 08:59:03

标签: android android-emulator uri

我使用此代码:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.fromParts("http", "//google.com/", "")); //fromParts is ok b/c the scheme is different
startActivity(i);

但是在Android模拟器上的浏览器上我得到了这个地址:

  

HTTP:%2F%2Fgoogle.com

为什么?以及如何解决?

1 个答案:

答案 0 :(得分:4)

阅读sourceUri.fromParts()构建OpaqueUriOpaqueUri.toString()网址对计划特定部分进行编码,将/更改为%2F

这是documented feature

  

对ssp进行编码,这意味着此方法不能用于创建分层URI。

要获得所需的分层Uri,请使用

Uri.parse("http://google.com/")

或使用Uri.Builder