android.net.Uri模棱两可的权威或路径

时间:2016-03-28 10:01:30

标签: java android uri

给出以下Android Java代码:

import android.net.Uri;
String humanEnteredString = "google.com";
Uri uri = Uri.parse(humanEnteredString);

为什么uri.getPath() == "google.com"而不是uri.getAuthority()? 如何强制Uri.parse看到“google.com”作为权威?

这样的课程是为了什么? https://github.com/android/platform_frameworks_base/blob/master/core/java/android/net/WebAddress.java

为什么Android SDK中无法访问此WebAddress课程?

是否有任何预先构建的类可以从人类输入的字符串中生成有效的<scheme>://<authority><path>可浏览的Uri,该字符串可能会丢失该方案?

显然,我可以在必要/适当的情况下测试并输入“http [s]://”前缀,但是不应该已经有一个防弹类来执行此操作吗?

谢谢,
PV

1 个答案:

答案 0 :(得分:0)

  

为什么uri.getPath()==&#34; google.com&#34;,而不是uri.getAuthority()?

因为"google.com"不是有效的Uri

  

如何强制Uri.parse查看&#34; google.com&#34;作为权威?

使用有效的Uri:一个带有方案的方案,例如https://google.com

  

是否有任何预先构建的类可以从人类输入的字符串生成有效的://可浏览的Uri,可能会丢失该方案?

不在Android SDK中,至少我记得。