我尝试从android.location.Geocode获取地址。以下是代码:
//授予我认为相关的任何许可
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.VIBRATE,
Manifest.permission.INTERNET},100);
//请求地理编码服务。功能:提供addressStr的地址。预期输出:地址相关信息,例如纬度,经度
import android.location.Geocoder; ...
String addressStr = "#3140-4000 No.3 Rd, Richmond, BC Canada";
Geocoder coder = new Geocoder(mContext);
List<Address> address;
address = coder.getFromLocationName(addressStr, 1);
System.out.println(address.size());
//移动设备中的输出:0
结果:
coder.isPresent()在上述情况下总是返回true。
因为同一段代码在模拟器中工作正常。当我第一次创建这个应用程序时,它在几天内工作了。我猜谷歌为模拟器提供免费服务,并为实际设备提供一定的免费配额。一旦免费配额用完,它就不再适用于实际设备。但仍然在模拟器中工作
对我的猜测有何评论?