还有其他方法可以连接Google API客户端吗?
我使用自动完成的地方,我必须在MYFRAGMENT的某些地方使用此代码
mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this)
.addApi(Places.GEO_DATA_API)
.enableAutoManage(this, GOOGLE_API_CLIENT_ID, this)
.addConnectionCallbacks(this).build();
Run Code Online (Sandbox Code Playgroud)
我的问题
enableAutoManage(this, GOOGLE_API_CLIENT_ID, this)
.addConnectionCallbacks(this).build();
Run Code Online (Sandbox Code Playgroud)
我不能处理它,因为当我替换我时this,getActivity()我有许多铸造问题
感谢您的帮助,如果这个问题很愚蠢,我很抱歉.
android google-api-client android-fragments google-places-api
我们在崩溃时遇到了这种崩溃,奇怪的是它在onConnected()请求位置更新时会在回调中发生.
码:
abstract public class MainService_6_LocationClient extends MainService_5_DriverGpsLocationStoring
implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
private LocationListener highAccuracyListener;
private GoogleApiClient googleApiClient;
private LocationRequest gpsRequest;
@Override
public void onCreate() {
super.onCreate();
lazyInit();
googleApiClient.connect();
}
@Override public void onConnected(Bundle bundle) {
Log.d(TAG, "onConnected");
lazyInit();
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, gpsRequest,
highAccuracyListener);
}
private void lazyInit() {
if (highAccuracyListener == null) {
highAccuracyListener = new HighAccuracyLocationListener();
}
if (googleApiClient == null) {
googleApiClient = new GoogleApiClient.Builder(this).addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
if (gpsRequest == null) {
gpsRequest = new …Run Code Online (Sandbox Code Playgroud) 我正在使用Google+ API开发Android应用.我有多个活动,每个活动都需要一个GoogleApiClient实例.
据我所知,从这篇文章可以为每个活动调用相同的GoogleApiClient实例.我的问题是我们如何专门创建GoogleApiClient的副本?
我们是否使用.addApi(),. addscope()再次构建一个并再次实现onConnected方法和OnConnectedFailedListener方法?因为它似乎重复而且效率低下.并且不会实现这些方法也会覆盖与其他活动相同的方法吗?
我正在尝试使用Google Play游戏服务为我的游戏添加成就.我的游戏中负责提供成就的活动已经扩展了BaseGameActivity,当它必须给出成就时它调用beginUserInitiatedSignIn,因此用户必须登录,但是当我解锁用户的成就时,我保持得到"java.lang.IllegalStateException:GoogleApiClient尚未连接".谁能告诉我我做错了什么?这是负责解锁成就的代码(它来自BaseGameUtils扩展BaseGameActivity的类):
private void darConquistaDerrubouArvore(int numeroDeAcertos) {
// start the asynchronous sign in flow
mSignInClicked = true;
mGoogleApiClient.connect();
if(numeroDeAcertos <= 40)
{
try
{
beginUserInitiatedSignIn();
Games.Achievements.unlock(gameHelper.getApiClient(), "CgkIs_27xcoSEAIQAQ");
Log.i("TelaModoCasual", "usuário não está logado");
this.onSignInFailed();
}
catch(Exception exc)
{
exc.printStackTrace();
this.onSignInFailed();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在处理的应用程序,有时可以正常工作,但有时候它会给我这个错误
致命异常:java.lang.RuntimeException:无法暂停活动{com.example.dell.locationapi/com.example.dell.locationapi.MainActivity}:java.lang.IllegalStateException:GoogleApiClient尚未连接.
有时这个错误:
java.lang.IllegalStateException:GoogleApiClient尚未连接.
即使该onConnected()函数被调用.我把调用buildGoogleApiClient() 转到了onCreate()这里的开头是我的代码:
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(context)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API).build();
}
Run Code Online (Sandbox Code Playgroud)
调用方法onCreate():
loc = new MyLocation(MainActivity.this);
if (loc.checkPlayServices()) {
loc.buildGoogleApiClient();
loc.createLocationRequest();
}
Run Code Online (Sandbox Code Playgroud)
但它有时会一直给出同样的错误,不知道为什么会发生这种情况?!