Как получить часы работы Place with Place Autocomplete в Google Android?

В настоящее время я создаю функциональность для поиска компании с AutocompleteTextView. Для этого я использую A PlaceAutocomplete IntentBuilder с режимом наложения следующим образом:

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

Я получаю следующее:

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

Но я не могу найти время открытия в объекте "место". Как я могу их восстановить? Я могу найти только тех, кто использует API, но я предпочитаю этот фрагмент автозаполнения.

Также попробовал это с вызовом API, чтобы позже получить местную информацию по идентификатору места, но, похоже, это разрешено только для ключей сервера. Если у кого-то есть работа с ключом выпуска на Android, тогда это будет хорошим исправлением. Но все еще кажется громоздким.

Ответ 1

Пожалуйста, используйте этот код ниже:

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"));

                } 
              }
    }

Ответ 2

запрос probalbly неверен. Параметры должны быть разделены амперсандами.

Изменить? key = MYKEYHERE? reference = to? key = MYKEYHERE & reference =. Я протестировал его с помощью своего ключа и получил ответ на "Coffe company".