Android 当我的wi-fi和移动数据处于关闭状态时,是否可以仅通过GPS从lat long获取地址?
我正在测试一款应用程序,该应用程序借助三星平板电脑上的GPS测量纬度和经度。我能够从GPS装置上获取当前的纬度、经度。现在我想使用经纬度从这些位置获取地址,而不使用互联网,即wi-fi和移动数据 我的做法如下:Android 当我的wi-fi和移动数据处于关闭状态时,是否可以仅通过GPS从lat long获取地址?,android,gps,location,location-client,Android,Gps,Location,Location Client,我正在测试一款应用程序,该应用程序借助三星平板电脑上的GPS测量纬度和经度。我能够从GPS装置上获取当前的纬度、经度。现在我想使用经纬度从这些位置获取地址,而不使用互联网,即wi-fi和移动数据 我的做法如下: public String getAddress(Context ctx, double latitude, double longitude) { StringBuilder result = new StringBuilder(); try {
public String getAddress(Context ctx, double latitude, double longitude) {
StringBuilder result = new StringBuilder();
try {
Geocoder geocoder = new Geocoder(ctx, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
if (addresses.size() > 0) {
Address address = addresses.get(0);
String locality=address.getLocality();
String city=address.getCountryName();
String region_code=address.getCountryCode();
String zipcode=address.getPostalCode();
double lat =address.getLatitude();
double lon= address.getLongitude();
result.append(locality+" ");
result.append(city+" "+ region_code+" ");
result.append(zipcode);
}
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
return result.toString();
}
private class GetCurrentAddress extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
// this lat and log we can get from current location but here we given hard coded
double latitude=12.916523125961666;
double longitude=77.61959824603072;
String address= getAddress(context, latitude, longitude);
return address;
}
@Override
protected void onPostExecute(String resultString) {
dialog.dismiss();
result.setText(resultString);
}
}
公共字符串getAddress(上下文ctx、双纬度、双经度){
StringBuilder结果=新建StringBuilder();
试一试{
Geocoder Geocoder=新的地理编码器(ctx,Locale.getDefault());
列表地址=geocoder.getFromLocation(纬度,经度,1);
如果(地址.size()>0){
地址=地址。获取(0);
String locality=address.getLocality();
字符串city=address.getCountryName();
字符串region_code=address.getCountryCode();
字符串zipcode=address.getPostalCode();
双lat=地址。getLatitude();
double lon=address.getLongitude();
result.append(locality+“”);
结果。追加(城市+“”+地区\代码+“”);
结果:追加(zipcode);
}
}捕获(IOE异常){
Log.e(“tag”,e.getMessage());
}
返回result.toString();
}
私有类GetCurrentAddress扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
//我们可以从当前位置获取lat和日志,但这里我们给出了硬编码
双纬度=12.916523125961666;
双经度=77.6195982463072;
字符串地址=getAddress(上下文、纬度、经度);
回信地址;
}
@凌驾
受保护的void onPostExecute(字符串resultString){
dialog.dismise();
result.setText(resultString);
}
}
在mainfest中,我做以下输入:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这是不可能的,因为地理编码器需要依赖互联网的外部服务 这是不可能的,因为地理编码器需要依赖于互联网的外部服务 是的,如果您只需要获得使用GPS的用户的lat/long,这是可能的
当考虑到地理编码的任何情况时,您将需要网络连接,以便访问谷歌API
希望它满足您的查询 是的,如果您只需要获得使用GPS的用户的lat/long,这是可能的 当考虑到地理编码的任何情况时,您将需要网络连接,以便访问谷歌API
希望它满足您的查询 没有互联网就不可能从Lat Lang获得地址,因为谷歌也进行地理编码
Geocoder geocoder = new Geocoder(ctx, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
Geocoder-Geocoder=new-Geocoder(ctx,Locale.getDefault());
列表地址=geocoder.getFromLocation(纬度,经度,1);
这个getFromLocation()方法应该在asynTask和internet中运行,然后它会给出所需的结果
<uses-permission android:name="android.permission.INTERNET" />
互联网许可也需要没有互联网就不可能从Lat Lang获得地址,因为谷歌也进行地理编码
Geocoder geocoder = new Geocoder(ctx, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
Geocoder-Geocoder=new-Geocoder(ctx,Locale.getDefault());
列表地址=geocoder.getFromLocation(纬度,经度,1);
这个getFromLocation()方法应该在asynTask和internet中运行,然后它会给出所需的结果
<uses-permission android:name="android.permission.INTERNET" />
互联网许可也需要不,这是不可能的,因为地理编码员需要后端(外部)服务。不,这是不可能的,因为地理编码员需要后端(外部)服务。我能知道投票否决我答案的原因吗?我能知道投票否决我答案的理由吗?