- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法在 Android 上使用 Google Places API 检索地点详细信息。我正在为特定 place_id 调用 getPlacyById()。
在 Android Activity 中,我设置了 googleApiClient 并调用 connect()。 apiClient连接成功。
然后出于测试目的,我使用硬编码的 place_id 和 resultCallback 调用 getPlaceById()。但是, resultCallback 永远不会被调用。
硬编码的 place_id 通过 JavaScript 进行测试(使用 JavaScript Google Maps API)并返回有效数据。但下面的 Java 代码无法返回任何数据。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_activity_layout);
ButterKnife.inject(this);
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
if (mGoogleApiClient == null) {
rebuildGoogleApiClient();
}
.....
code_for_activity_init
.....
}
protected synchronized void rebuildGoogleApiClient() {
// When we build the GoogleApiClient we specify where connected and connection failed
// callbacks should be returned, which Google APIs our app uses and which OAuth 2.0
// scopes our app requests.
mGoogleApiClient = new GoogleApiClient.Builder(this)
//.enableAutoManage(this, 0 /* clientId */, this)
.addConnectionCallbacks(this)
.addApi(Places.GEO_DATA_API)
.build();
}
@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}
@Override
protected void onStop() {
super.onStop();
mGoogleApiClient.disconnect();
}
@Override
public void onConnected(Bundle bundle) {
// Successfully connected to the API client. Pass it to the adapter to enable API access.
//addressesAdapter.setGoogleApiClient(mGoogleApiClient);
Log.i("place api conn", "GoogleApiClient connected.");
}
@Override
public void onConnectionSuspended(int i) {
// Connection to the API client has been suspended. Disable API access in the client.
//mAdapter.setGoogleApiClient(null);
Log.e("place api conn", "GoogleApiClient connection suspended.");
}
@OnLongClick(R.id.one_more_request)
public boolean getDataAgain(){
Log.d("place", "getPlace By Id");
PendingResult<PlaceBuffer> placeResult = Places.GeoDataApi
.getPlaceById(mGoogleApiClient, "ChIJIV6Mkke9oRQRcPq3KAx513M");
placeResult.setResultCallback(mUpdatePlaceDetailsCallback);
return true;
}
private ResultCallback<PlaceBuffer> mUpdatePlaceDetailsCallback
= new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(PlaceBuffer places) {
if (!places.getStatus().isSuccess()) {
// Request did not complete successfully
Log.e("place", "Place query did not complete. Error: " + places.getStatus().toString());
return;
}
// Get the Place object from the buffer.
final Place place = places.get(0);
// Format details of the place for display and show it in a TextView.
//mPlaceDetailsText.
Toast.makeText(MyActivity.this,/*setText(*/
formatPlaceDetails(getResources(), place.getName(),
place.getId(), place.getAddress(), place.getPhoneNumber(),
place.getWebsiteUri()), Toast.LENGTH_LONG).show();
Log.i("place", "Place details received: " + place.getName());
}
};
这个问题类似于Google Places Api resultCallback not firing但是我检查过我的 AndroidManifest 已经包含所需的权限
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
最终,我希望每次用户从自动完成地址字段中选择一个项目时都调用 getPlaceById() 。
***** 更新 *****找到解决方案。我错过了两件事。首先,这次将maps.v2.API_KEY复制粘贴为geo.API_KEY(并确保删除maps.v2.API_KEY,因为它不能指定两次)
android:name="com.google.android.maps.v2.API_KEY"android:value="whatEverGoogleMapsApiKeyYouHave"
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="whatEverGoogleMapsApiKeyYouHave"/>
其次,我必须启用适用于 Android 的 Google Places API
最佳答案
SDK 21 更新
如果您同时包含这两个元数据,您将收到以下错误:
Caused by: java.lang.RuntimeException: The API key can only be specified once.
只需包含地理 API key 即可:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="whatEverGoogleMapsApiKeyYouHave"/>
而不是 map
关于java - getPlaceById() 无法返回 Android 上的数据 google place API/resultCallback 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29801555/
我最近在我的一个工作游戏中添加了统一广告,我想弄清楚如何使用奖励视频广告展示位置来确保我只在视频未被跳过时才给予奖励。我已经有了统一广告,这是我的代码: private static bool Pla
在我们的 J2EE 项目中,我们通过调用 sjourdan/ffmpeg 进行一些视频转换。我们的java代码中的docker,依赖docker-java . 目前,它看起来像这样(为了简洁起见,进行
我正在为一个小程序使用 Google Drive API,并且在任务的身份验证或执行方面没有遇到任何问题。我的主要问题是我为异步 API 调用设置了一个 resultcallback,但从未调用过回调
我正在尝试重用 Cloudinary 上传小部件的单个实例来从我的 React 应用程序中的多个位置上传和检索上传的媒体信息? 我能否将不同的 resultCallbacks 传递给 Cloudina
我正在学习适用于 Android 的 Google Cast Sender 应用程序教程,但在连接到 Cast CustomReceiver 时遇到了困难。 我使用以下 ConnectionCallb
我正在使用适用于 Android 的 Google Places API,我似乎无法从 PendingResult 中获取 resultCallback 来触发。这是我的代码(除了在对话框中,与 ht
我尝试在检索用户的位置之前检查用户的位置设置,但无法触发 onResult 回调。我首先在 onCreate() 中初始化了 GoogleClientApi 对象并尝试调试,它在 result.set
我无法在 Android 上使用 Google Places API 检索地点详细信息。我正在为特定 place_id 调用 getPlacyById()。 在 Android Activity 中,
我是一名优秀的程序员,十分优秀!