11

Şu anda, bir AutocompleteTextView sahip bir şirket aramak için işlevsellik inşa ediyorum.nasıl Android'de Yeri Otomatik Tamamlama niyet üreticiyle bir Place saatleri almak için?

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == PLACE_AUTOCOMPLETE_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 
      Place place = PlaceAutocomplete.getPlace(this, data); 
      Log.i(TAG, "Place: " + place.getName()); 
     } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) { 
      Status status = PlaceAutocomplete.getStatus(this, data); 
      Log.i(TAG, status.getStatusMessage()); 
     } else if (resultCode == RESULT_CANCELED) { 
      // The user canceled the operation. 
     } 
    } 
} 

Ama 'yerinde' in açılış saatlerini bulamıyor: Ben böyle bir yer almak

try { 
     AutocompleteFilter typeFilter = new AutocompleteFilter.Builder() 
       .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ESTABLISHMENT) 
       .setCountry("NL") 
       .build(); 
     Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY) 
       .setFilter(typeFilter) 
       .build(activity); 
     activity.startActivityForResult(intent, placeAutocompleteRequestCode); 
    } catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) { 
     Log.e(TAG, "Something went wrong getting the places fragment." + e.getMessage()); 
    } 

: Böyle bindirme modu ile bir PlaceAutocomplete IntentBuilder kullanmak Bunu başarmak için nesne. Onları nasıl alabilirim? Yalnızca API kullanan diğer kişileri bulabilirim, ancak bu otomatik tamamlama parçasını tercih ediyorum.

Ayrıca sonradan yer numarası yer ayrıntılarını almak için bir API çağrısı ile denedim ama bu yalnızca sunucu anahtarları için izin verildiğini görünür. Birisi bu Android üzerinde bir serbest bırakma anahtarı ile çalışıyorsa, o zaman şimdi için güzel bir düzeltme olurdu. Ama yine de hantal geliyor.

+2

Bunu denediniz mi? (Https://stackoverflow.com/questions/36004222/get-opening-hours-of-place-android) veya [this] (https://stackoverflow.com/questions/42676182/how-to-get-açılış-saat-kullanma-google-yerleri-api-için-android)? –

+0

Evet Bunu denedim, ama işe yaramıyor. Yer almak için API çağrısı, istemciler için çalışmayan ve sunuculara yönelik olan IP filtresiyle bir API anahtarı gerektirir. – jobbert

cevap

0

Aşağıda bu kodu kullanın:

private class ParserTask extends AsyncTask<String, Integer, HashMap<String,String>>{ 

     JSONObject jObject; 
     @Override 
     protected HashMap<String,String> doInBackground(String... jsonData) { 

      HashMap<String, String> hPlaceDetails = null; 
      PlaceDetailsJSONParser placeDetailsJsonParser = new PlaceDetailsJSONParser(); 

      try{ 
       // this object give JSON 
       jObject = new JSONObject(jsonData[0]); 

       // this object give Result 
       JSONObject jresult = new JSONObject(jObject[1]);    

       // this object give opening_hours 
       JSONObject jopening_hours = new JSONObject(jresult[2]); 

       // this object give periods 
       JSONObject jperiods = new JSONObject(jopening_hours[2]); 



      }catch(Exception e){ 
       Log.d("Exception",e.toString()); 
      } 
      return jperiods; 
     } 

     // Executed after the complete execution of doInBackground() method 
     @Override 
     protected void onPostExecute(JsonObject periods){ 
       HashMap<String,String> periods; 

       // put your condition 
       for(..) 
       { 
       JsonObject day = new JSONObject(periods[i]); 
        periods.put("key",day.get("day")); 

       } 
       } 
    } 
+0

bu asynctask giriş ben o json dize alırım bir json dize nedir? Bir API çağrısına başvurduğunuzu varsayalım. Ancak Android istemcisi olarak açılış saatleri almaya yetkili değilsiniz. Bunu gerçekten çalışıyor muydun? Yoksa bu cevabın sadece bir kopyasıdır: https://stackoverflow.com/a/42731327/2917564. Gördüğüm gibi kendimi gerçekten düzenledim: P. – jobbert

+0

sorgu parametreleri içine bakacağız definetely Ayrıca benim comment @chandrakant sharma – jobbert

0

probalbly sorgusu geçersiz. Parametreler, ampersanlar ile ayrılmalıdır.

Değişim? Key = MYKEYHERE? Referans =? Key = MYKEYHERE & referansa =. Anahtarımla test ettim ve "Kahve şirketi" için bir cevap aldım.

+0

değil aradığım cevabı cevap ama lütfen. – jobbert