@Hakito

В чем ошибка при подключении к API google?

Пишу приложение под андроид с использованием google game services API.
При попытке подключения GoogleApiClient происходит ошибка.
Вот что пишется в обработчике onConnectionFailed:
ConnectionResult{statusCode=RESOLUTION_REQUIRED, resolution=PendingIntent{413bd288: android.os.BinderProxy@413bd228}, message=null}
В манифесте прописал:
<meta-data android:name="com.google.android.gms.games.APP_ID"
            android:value="@string/google_app_id" />
        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>


Вот так создаю клиент:
client = new GoogleApiClient.Builder(this).addApi(Games.API).addScope(Games.SCOPE_GAMES).addConnectionCallbacks(this).addOnConnectionFailedListener(this).build();


Пожалуйста, подскажите, в чем проблема? второй день не могу разобраться
  • Вопрос задан
  • 2171 просмотр
Пригласить эксперта
Ответы на вопрос 3
@glenean
Вы слишком рано создаете client, это нужно делать в MainActivity в onCreate
Ответ написан
Комментировать
@Hakito Автор вопроса
Вот код моей активити. теперь ошибки нету, но оно просто не поключается. Тоесть, не вызывается OnConnected
package hakito.pencilrunner.Activities;

import android.content.IntentSender;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.games.Games;

import hakito.pencilrunner.Game.Game;
import hakito.pencilrunner.R;

public class FinishActivity extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

    public static final String EXTRA_DISTANCE="distance";
    GoogleApiClient client;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_finish);


        findViewById(R.id.buttonRestart).setOnClickListener(this);

        client = new GoogleApiClient.Builder(this).addApi(Games.API).addScope(Games.SCOPE_GAMES).addConnectionCallbacks(this).addOnConnectionFailedListener(this).build();


    }

    @Override
    public void onClick(View v) {
        switch (v.getId())
        {
            case R.id.buttonRestart:
                Game.get().restart();
                finish();
                break;
        }
    }

    @Override
    protected void onStart() {
        super.onStart();
        client.connect();
    }

    @Override
    protected void onStop() {
        super.onStop();
        client.disconnect();
    }

    @Override
    public void onConnected(Bundle bundle) {
        int dist = getIntent().getIntExtra(EXTRA_DISTANCE, 0);

        Games.Leaderboards.submitScore(client, getString(R.string.leaderboard_best_score), dist);
        startActivity(Games.Leaderboards.getLeaderboardIntent(client, getString(R.string.leaderboard_best_score)));
    }

    @Override
    public void onConnectionSuspended(int i) {

    }

    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {
        if(connectionResult.hasResolution())
        {
            try {
                connectionResult.startResolutionForResult(this, 0);
                client.connect();
            } catch (IntentSender.SendIntentException e) {
                e.printStackTrace();
            }
        }else {
            GooglePlayServicesUtil.showErrorDialogFragment(connectionResult.getErrorCode(), this, 0);
        }
    }
}
Ответ написан
Комментировать
maaGames
@maaGames
Погроммирую программы
Android Studio или Eclipse?
meta-data прописаны именно внутри application?
Какие версии SDK прописали?
В консоли разработчика разрешили использования этих API для приложения?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы