gpt4 book ai didi

android - 如何在 Android 中使用 Place Autocomplete intent builder 获取 Place 的开放时间?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:45 27 4
gpt4 key购买 nike

目前,我正在构建一个功能来搜索带有 AutocompleteTextView 的公司。为实现这一点,我使用具有覆盖模式的 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 的人,但我更喜欢这个自动完成 fragment 。

稍后还尝试通过 API 调用通过地点 ID 获取地点详细信息,但似乎这只允许用于服务器 key 。如果有人在 Android 上使用发布 key 进行此操作,那么它现在将是一个不错的修补程序。但是还是觉得很麻烦。

最佳答案

请使用下面的代码:

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

}
}
}

关于android - 如何在 Android 中使用 Place Autocomplete intent builder 获取 Place 的开放时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47202768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com