如何将Googleapiclient传递给Google Play游戏的其他所有活动

时间:2017-08-11 12:11:46

标签: android google-play-games google-api-client leaderboard

我尝试过使用很多文档和资源,但我无法找到将Googleapiclient传递给其他活动的正确方法。 对于我 Google Play游戏成功登录是一项活动。我想在另一项活动中提交分数。 请介绍如何完成我的项目。

2 个答案:

答案 0 :(得分:1)

如果您需要经常连接到GoogleApiClient,那么我可能会创建一个单例类来处理GoogleApiClient调用。

/**
 *  Class to maintain singlton object of google api
 */
public class GoogleApiClient_Singleton {
    private static final String TAG = "GoogleApiClient";
    private static GoogleApiClient_Singleton instance = null;

    private static GoogleApiClient mGoogleApiClient = null;

    protected GoogleApiClient_Singleton() {

    }

    public static GoogleApiClient_Singleton getInstance(GoogleApiClient aGoogleApiClient) {

        if(instance == null) {
            instance = new GoogleApiClient_Singleton();

            if (mGoogleApiClient == null)
                mGoogleApiClient = aGoogleApiClient;
        }

        return instance;
    }

    public GoogleApiClient get_GoogleApiClient(){
        return mGoogleApiClient;
    }
}

或者从每个地方访问对象,

在Application类文件中创建对象。不要忘记在清单中添加应用程序。 然后在我的第二个活动中创建一个新的GoogleApiClient实例,然后像这样获取api客户端

public class App extends Application {
    private static GoogleApiClient mGoogleApiClient;

    private static App mInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    public void setClient(GoogleApiClient client){
        mGoogleApiClient = client;
    }

    public GoogleApiClient getClient(){
       return mGoogleApiClient;
    }
}

// In second activity
GoogleApiClient client = App.getInstance().getClient();

更新清单

<application
    android:name=".App"
    ... other tags
    />

答案 1 :(得分:0)

我通过在所有活动中提供登录代码来解决该错误。 所以我解决了一个活动的签名并提交分数另一个活动错误已解决。 Google Play游戏登录是通过使用以下链接实现的。

https://developers.google.com/games/services/training/signin