GeoCoder服务不可用
我正在使用GeoCoder
获取AddressLocation
。
不幸的是,该方法会触发IOException saying: "Service not Available"
。
This StackOverFlow thread解释了发生了什么,因为我对其进行了全面测试(用户权限,构建版本,重启,GeoCoding API限制等)。
您可以找到的Google Play-Services
(或LocationService
):Android设置 - > (管理)应用程序 - >运行进程,已崩溃或停止。它重新启动,但忘记将GeoCoderService绑定到NetworkLocator。
此错误的“解决方案”是重新启动Android手机,因为在重新启动时,GeoCoderService绑定到NetworkLocater。 我当然不认为这是一个解决方案。
我的问题是,LocationService如何崩溃或首先停止?
我所做的是手动强制停止Google Play服务,一些设备重新启动了LocationService,但有些设备没有。
不工作(未重启LocationService)
工作(确实重启了LocationService)
有人知道Google Play服务(LocationService)在运行一段时间后崩溃或停止的原因是什么?
我已将此问题上报给b.Android.com并亲自与Android开发人员联系。
我已经看到我的问题已在其他主题中讨论过,但没有得出任何结论:
答案 0 :(得分:3)
再次重启设备检查(我遇到同样的问题。)
答案 1 :(得分:2)
有些设备没有Geocoder支持,所以您需要创建自己的地理编码器。
基本上你需要创建一个异步任务来请求google获取地址并处理json响应。
使用aquery,我做这样的事情:
public void asyncJson(String address){
address = address.replace(" ", "+");
String url = "http://maps.googleapis.com/maps/api/geocode/json?address="+ address +"&sensor=true";
aq.ajax(url, JSONObject.class, new AjaxCallback<JSONObject>() {
@Override
public void callback(String url, JSONObject json, AjaxStatus status) {
if(json != null){
//here you work with the response json
JSONArray results = json.getJSONArray("results");
Toast.makeText(context, results.getJSONObject(1).getString("formatted_address"));
}else{
//ajax error, show error code
Toast.makeText(aq.getContext(), "Error:" + status.getCode(), Toast.LENGTH_LONG).show();
}
}
});
}
答案 2 :(得分:1)
您可以将Samsung Galaxy S II与Android 4.1.2一起添加到 NOT WORKING 列表中。这是一个烦人的错误,解决方法是以直接方式访问GMaps API。从我的角度来看,当用户使用内置任务管理器杀死所有应用程序以释放资源/内存时,就会发生这种情况。
答案 3 :(得分:0)
尝试在Manege Apps上重新启动“网络位置”服务。
答案 4 :(得分:0)
我遇到了同样的错误,请添加以下权限来解决它。
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
答案 5 :(得分:0)
您可以使用Google Maps Services。