Google Places API,获取用户地址
Posted
技术标签:
【中文标题】Google Places API,获取用户地址【英文标题】:Google places API, get user addresses 【发布时间】:2015-12-30 23:53:11 【问题描述】:我一直在努力使用 Google Places API,我需要使用 Address API。
我使用 autoComplete 和 placePicker API 很好,但由于某种原因 Address API 无法正常工作。
我已经尝试过查看这个https://developers.google.com/android/reference/com/google/android/gms/identity/intents/Address
但我不知道如何将addApi()
用于地址 API。
如果有人可以提供一些示例代码或其他东西来帮助我入门,我们将不胜感激。
提前谢谢你。
【问题讨论】:
你想通过获取用户的gps坐标来获取用户的地址吗? 不,我只想打电话给requestUserAddress()
,所以它会提示用户分享他的地址。
【参考方案1】:
要添加地址 API,您需要添加如下选项:
Address.AddressOptions options = new Address.AddressOptions(AddressConstants.Themes.THEME_LIGHT);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Address.API, options)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
那你就可以索取地址了:
UserAddressRequest request = UserAddressRequest.newBuilder().build();
Address.requestUserAddress(mGoogleApiClient, request,
REQUEST_CODE);
然后你得到结果:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
switch (requestCode)
case REQUEST_CODE:
switch (resultCode)
case Activity.RESULT_OK:
UserAddress userAddress = UserAddress.fromIntent(data);
//DO SOMETHING
break;
case Activity.RESULT_CANCELED:
break;
default:
//NO ADDRESS
break;
break;
并将其添加到您的 gradle 中:
compile 'com.google.android.gms:play-services-identity:8.1.0'
【讨论】:
非常感谢您的回复,但是有一个问题。我需要在FragmentActivity
中实现API 代码,这样我就可以调用enableAutoManage()
。此外,在Activity
中实现您的代码会返回“一个活动必须用于地址 API”异常。
@MazenElian 你是对的,我不知道为什么 Address API 不喜欢 enableAutomanage(),在其他 API 工作正常,你可以在这个答案中找到解决方法***.com/questions/30622906/…跨度>
以上是关于Google Places API,获取用户地址的主要内容,如果未能解决你的问题,请参考以下文章
在代码中获取地址自动完成(JavaScript API 的 Google Places 库)请求计数
如何有效检测 UI 文本输入以调用 google places API 以获取建议?
Google Places API Autocomplete 仅获取城市列表