Java 如何通过呼叫谷歌服务获得结果?

Java 如何通过呼叫谷歌服务获得结果?,java,android,google-location-services,android-task,Java,Android,Google Location Services,Android Task,我正在尝试通过android的谷歌定位服务获取位置 我试着从任务包中修改GoogleAPI中的一些方法,但似乎都失败了。更确切地说,我的应用程序开始挂起 公共类LocationTask扩展了AsyncTask{ @SuppressLint(“丢失许可”) @凌驾 受保护的JSONObject doInBackground(FusedLocationProviderClient…LocationProviderClient){ WeatherApiCall WeatherApiCall=新的Wea

我正在尝试通过android的谷歌定位服务获取位置

我试着从任务包中修改GoogleAPI中的一些方法,但似乎都失败了。更确切地说,我的应用程序开始挂起

公共类LocationTask扩展了AsyncTask{
@SuppressLint(“丢失许可”)
@凌驾
受保护的JSONObject doInBackground(FusedLocationProviderClient…LocationProviderClient){
WeatherApiCall WeatherApiCall=新的WeatherApiCall();
Task locationTask=LocationProviderClient[0]。getLastLocation();
位置=空;
试一试{
地点=任务。等待(地点任务);
weatherApiCall.execute(“weather”,String.format(Locale.getDefault(),“%.2f”,location.getLatitude()),
格式(Locale.getDefault(),“%.2f”,location.getLongitude(),“metric”);
返回新的JSONObject(weatherApiCall.get());
}捕获(执行例外){
e、 printStackTrace();
}捕捉(中断异常e){
e、 printStackTrace();
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
}
我也尝试过使用addOnSuccessListener,但没有用

试试看{
LocationProviderClient[0]。getLastLocation()
.addOnSuccessListener(位置->{
如果(位置!=null){
Log.d(“LOCATION”,LOCATION.toString());
weatherApiCall.execute(“weather”,String.format(Locale.getDefault(),“%.2f”,location.getLatitude()),
格式(Locale.getDefault(),“%.2f”,location.getLongitude(),“metric”);
}
});
返回新的JSONObject(weatherApiCall.get());
}捕获(执行例外){
e、 printStackTrace();
}捕捉(中断异常e){
e、 printStackTrace();
}捕获(JSONException e){
e、 printStackTrace();
}
我知道成功侦听器在任务LocationProviderClient[0].getLastLocation()成功完成后执行该操作,但我无法从该任务中获取结果