我无法在Android上使用Google Places API检索位置细节。我调用getPlacyById()来获取特定的place_id。
在一个Android活动中,我设置了一个googleApiClient并调用connect()。apiClient连接成功。
然后,出于测试目的,我使用硬编码的place_id和resultCallback调用getPlaceById()。但是,resultCallback从不被调用。
@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());
}
};
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<罢工> 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
我错过了两件事。
首先是com.google.android.geo.api_key,它与com.google.android.maps.v2.api_key相同。只需在AndroidManifest文件上复制粘贴API键。
<罢工> 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"/>
问题内容: 我正在开发具有以下功能的条形码扫描应用程序: •访问设备相机,在SurfaceView上预览相机,并自动重新对焦 •Attemtps使用两种方法解码条形码 a)在使用 onTouchEvent(MotionEvent event)的 SurfaceView touch上,尝试拍摄条形码的图片,但获取 java.lang.RuntimeException:takePicture失败 b)
我想使用GooglePlaceAPI和自动完成视图。我有开发者控制台上的android和浏览器密钥。但当我尝试这些键API时,它返回空响应。 Logcat: D/Volley:[2651]a.a:请求的HTTP响应= 我的代码: 在onpostexecute日志中: 我是新来的google地方api,请帮我找到什么是错误的。
我正在使用JSF 2.0创建页面: 我期待在单击复选框时被调用。但是,加载页面时调用一次setMyCheckboxValue()。 如果我写 每次点击都会收到警报。 我的问题是:当我收到警报时,为什么每次onclick事件都不调用? 注意:我也尝试过AJAX,但复选框保持不变。
我使用的是Google Places API for Android,但似乎无法从中获取来激发。这里是我的代码(除了在对话框中之外,与https://github.com/googlesamples/android-play-places/tree/master/placeComplete的示例代码基本相同)
我找到了一些很好的SO链接(如何从异步回调函数返回值?以及从node.js中的回调函数返回值等),但它们并不是不能为我的问题提供解决方案。 我的问题:能够得到异步调用的结果,但我如何使用这个结果返回我的函数? 这里获取callBackResponse的值为true或false,并希望将该值用作:
下面是我要测试的代码类 我的测试类