我在我的Android应用中添加了Place Autocompletion。当我单击按钮(chooseLocationButton
)时,它会正确打开自动完成窗口小部件。问题是我想在搜索字段中写一个名字。点击第一次击键后,自动完成小部件关闭,研究没有完成。
这是它在Run控制台中编写的内容:
W/IInputConnectionWrapper: reportFullscreenMode on inexistent InputConnection
W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
这是代码:
AutocompleteFilter.Builder a = new AutocompleteFilter.Builder();
try {
final Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN)
.setFilter(a.setTypeFilter(AutocompleteFilter.TYPE_FILTER_REGIONS).build())
.build(this);
chooseLocationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
}
});
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
// TODO handle exception!
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
// TODO handle exception! Toast?
}
当然,我已在Google Developer Console中启用了Google Places Android API和Google Map android API。 此外,我已将API密钥添加到AndroidManifest.xml中,如下所示:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
在日志中我观察到:
BasicNetwork.performRequest: Unexpected response code 400 for https://www.googleapis.com/placesandroid/v1/getAutocompletePredictions...
其次是:
[67738] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/placesandroid/v1/getAutocompletePredictions?key=...11-17 21:02:01.207 1053-1543/? E/Places: PLACES_API_INVALID_APP
在Android Studio的运行日志中,我有:PLACES_API_KEY_EXPIRED
我希望有人可以帮助我。
谢谢。
答案 0 :(得分:2)
当我注意到Google为API密钥创建了一个.xml文件并且与我放在string.xml中的API发生了冲突时,问题就解决了
答案 1 :(得分:2)
更改API密钥解决了我的问题。
您可以从here
生成新密钥答案 2 :(得分:0)
这听起来像是一个关键问题。要仔细检查的事情: