की आलोचना करें कई बार मैं अपने आवेदन में Service Not Available
अपवादों को पूरा करता हूं। ज्यादातर समय, कोई समस्या नहीं है। लेकिन कभी-कभी ऐसा होता है। (ऐप अभी भी विकास में है)रिवर्स जियोकोडिंग - सेवा उपलब्ध नहीं है - डिवाइस को पुन: प्रारंभ करने के लिए निश्चित रूप से हल नहीं करें - मेरे मैनुअल उलटा जियोकोडिंग
इसे हल करने का एकमात्र तरीका है हैंडसेट को पुनरारंभ करें। Relevant Issue38009 on support forums। लेकिन टिप्पणियों से मैं क्या समझता हूं कि डिवाइस को रीबूट करने से समस्या हमेशा हल करती है।
क्या यह सही है?
क्योंकि मेरे मामले में, बग वापस आ सकता है (आवृत्ति: महीने में एक या दो बार मुझे लगता है कि & मैं इस ऐप पर पूर्णकालिक हूं)।
क्या एप्लिकेशन के अंदर से geocoder को पुनरारंभ करने का एक तरीका है?
मेरे पास एकमात्र समाधान है जो नीचे दिए गए पते को "मैन्युअल रूप से" लाने के मामले में वैकल्पिक समाधान प्रदान करना है। क्या आपके पास कोई बेहतर है?
Dbg.d(TAG, "=== address_info FetchLocationTask - doInBackground");
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
mHandler = new Handler();
Looper.loop();
}
}).start();
/**
* Implementation of a second method in case of failure:
*
*/
double lat = Double.parseDouble(args[0]);
double lng = Double.parseDouble(args[1]);
String address = String.format(Locale.ENGLISH,
"http://maps.googleapis.com/maps/api/geocode/json?latlng="+Double.toString(lat)+","+Double.toString(lng)+"&sensor=true&language="+Locale.getDefault().getCountry(), lat, lng);
Dbg.d(TAG, "fetching path : "+ address);
HttpGet httpGet = new HttpGet(address);
HttpClient client = new DefaultHttpClient();
HttpResponse response;
StringBuilder stringBuilder = new StringBuilder();
List<Address> retList = null;
try {
response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
InputStream stream = entity.getContent();
int b;
while ((b = stream.read()) != -1) {
stringBuilder.append((char) b);
}
JSONObject jsonObject = new JSONObject();
jsonObject = new JSONObject(stringBuilder.toString());
retList = new ArrayList<Address>();
if("OK".equalsIgnoreCase(jsonObject.getString("status"))){
JSONArray results = jsonObject.getJSONArray("results");
for (int i=0;i<results.length();i++) {
JSONObject result = results.getJSONObject(i);
String indiStr = result.getString("formatted_address");
Address addr = new Address(Locale.ITALY);
addr.setAddressLine(0, indiStr);
Dbg.d(TAG, "adresse :"+addr.toString());
retList.add(addr);
}
}
} catch (ClientProtocolException e) {
Dbg.e(TAG, "Error calling Google geocode webservice.", e);
} catch (IOException e) {
Dbg.e(TAG, "Error calling Google geocode webservice.", e);
} catch (JSONException e) {
Dbg.e(TAG, "Error parsing Google geocode webservice response.", e);
}
JSONObject jObj = new JSONObject();
boolean found = false;
if (retList.size() > 0) {
Address a = retList.get(0);
String name = a.getAddressLine(0);
String city = a.getLocality();
String postalCode = a.getPostalCode();
String country = a.getCountryName();
if (!TextUtils.isEmpty(name)) {
JsonUtils.setSringInJson(jObj, BookLocation.ADDRESS_NAME_KEY, name);
found = true;
}
if (!TextUtils.isEmpty(postalCode)) {
JsonUtils.setSringInJson(jObj, BookLocation.ADDRESS_POSTAL_CODE_KEY, postalCode);
found = true;
}
if (!TextUtils.isEmpty(city)) {
JsonUtils.setSringInJson(jObj, BookLocation.ADDRESS_CITY_KEY, city);
found = true;
}
if (!TextUtils.isEmpty(country)) {
JsonUtils.setSringInJson(jObj, BookLocation.ADDRESS_COUNTRY_KEY, country);
found = true;
}
}
mHandler.getLooper().quit();
if (found) {
return jObj;
} else return null;
आपका लिंक यहाँ इशारा करते हुए किया जाना चाहिए: https://code.google.com/p/android/issues/detail?id=38009 जारी किए जाने की मेरी पढ़ने से, _no_, रिबूट स्थायी रूप से इस मुद्दे को हल नहीं करता है। –
वास्तव में, इसे सही करें। – Poutrathor