我对地图的意图有疑问,我发现.path()
在构建geo uri时不起作用,它只是打开了Google地图,什么也不做。请参见下面的代码:
public void onClickOpenAddressButton(View v) {
String address = "200 w 40th st, new york, ny 10018";
Uri.Builder uriBuilder = new Uri.Builder();
uriBuilder.scheme("geo");
uriBuilder.path("440.749841, -73.986675");
//uriBuilder.appendQueryParameter("q", address);
showMap(uriBuilder.build());
}
private void showMap(Uri uri) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
} else {
Toast.makeText(this, "Can't find any Application to handle this Intent", Toast.LENGTH_SHORT).show();
}
}
但是,如果我将String串联与Uri.parse()
方法一起使用,它将起作用:
intent.setData(Uri.parse("geo:" + geoLocation));
因此,如果我使用uri builder方法并且也有确切的地址,我仍然需要.path()
来构建有效的geo uri吗?如果是这样,.path()
的目的是什么?谢谢您的帮助。
答案 0 :(得分:1)
我仍然需要“ .path()”来构建有效的地理uri吗?
否。
如果是,“。path()”的目的是什么?
还有其他类型的Uri
方案。例如,https
是Uri
方案,而这是使用该方案的Uri
:
https://stackoverflow.com/questions/57331195/path-doesnt-work-when-building-geo-uri-for-intent
此path()
的{{1}}是Uri
。
并非所有/questions/57331195/path-doesnt-work-when-building-geo-uri-for-intent
值都使用Uri
的所有可能的功能,因此您通过Uri
构建的Uri
不会使用所有可能的Uri.Builder
方法。