给出以下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
答案 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中,至少我记得。