11

Hiện tại, tôi đang xây dựng một chức năng để tìm kiếm một công ty có một AutocompleteTextView. Để đạt được điều này tôi sử dụng A PlaceAutocomplete IntentBuilder với chế độ overlay như thế này:Cách nhận giờ mở cửa của Địa điểm bằng Trình tạo mục đích Tự động hoàn thành địa điểm trong Android?

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()); 
    } 

tôi nhận nơi như thế này:

@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. 
     } 
    } 
} 

Nhưng tôi không thể tìm ra thời gian mở trong 'nơi' vật. Làm thế nào tôi có thể lấy chúng? Tôi chỉ có thể tìm những người khác sử dụng API, nhưng tôi thích phân đoạn tự động hoàn thành này.

Cũng đã thử với một cuộc gọi API để nhận chi tiết địa điểm theo ID địa điểm sau đó nhưng có vẻ như điều này chỉ được phép cho các khóa máy chủ. Nếu ai đó đã làm việc này với một phím phát hành trên Android thì nó sẽ là một hotfix tốt đẹp cho bây giờ. Nhưng vẫn cảm thấy cồng kềnh.

+2

Bạn đã thử [this] (https://stackoverflow.com/questions/36004222/get-opening-hours-of-place-android) hoặc [this] (https://stackoverflow.com/questions/42676182/how-to-get-mở-giờ-sử dụng-the-google-places-api-cho-android)? –

+0

Có, tôi đã thử điều đó, nhưng điều đó không hiệu quả. Khi lệnh gọi API để nhận chi tiết địa điểm yêu cầu khóa API với bộ lọc IP, không hoạt động cho máy khách và có nghĩa là cho máy chủ. – jobbert

Trả lời

0

Vui lòng sử dụng mã này dưới đây:

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

Đầu vào của asynctask này là một chuỗi json, tôi lấy chuỗi json đó từ đâu? Tôi cho rằng bạn đang đề cập đến một cuộc gọi API. Nhưng bạn không được phép nhận thời gian mở cửa làm ứng dụng khách Android. Bạn có thực sự làm việc này không? Hoặc đây chỉ là bản sao của câu trả lời này: https://stackoverflow.com/a/42731327/2917564. Mà tôi đã thực sự chỉnh sửa bản thân mình như bạn có thể thấy: P. – jobbert

+0

Vui lòng trả lời nhận xét của tôi @chandrakant sharma – jobbert

0

truy vấn probalbly là không hợp lệ. Tham số phải được phân tách bằng dấu và.

Thay đổi? Key = MYKEYHERE? Reference = to? Key = MYKEYHERE & reference =. Tôi đã thử nghiệm nó với chìa khóa của tôi và nhận được một phản ứng cho "công ty Coffe".

+0

Ngoài ra không phải là câu trả lời tôi đang tìm kiếm, nhưng chắc chắn sẽ xem xét các tham số truy vấn. – jobbert

Các vấn đề liên quan