Android应用使用G +原生应用的用户

时间:2014-01-03 21:29:27

标签: android google-plus

我已按照快速入门指南(PlusClient)实施了G +登录。一切正常。我可以进行身份​​验证,获取帐户元数据,断开连接等。当我使用共享意图发布时会出现问题。当我这样做时,弹出原生G + UI显示G +登录用户而不是我的?有没有办法同步两个应用程序用户会话?

编辑: 以下是相关的代码片段。此外,我正在使用两个Google帐户(A& B)。我的应用程序正在进行身份验证并以帐户A身份进行连接.G +本机应用程序之前已作为帐户B连接。当我调用方法post()时,当我预期帐户A时,G +本机UI会弹出帐户B.希望这会有所帮助。提交整个工作代码库是不切实际的,因为它是Cordova应用程序。

public void connect() {
    mPlusClient = new PlusClient.Builder(this.cordova.getActivity() , this, this)
    .setActions("http://schemas.google.com/AddActivity")
    .setScopes(Scopes.PLUS_LOGIN)  // recommended login scope for social features
    .build();

    mPlusClient.connect();  
}

public void post(JSONObject params) {

    JSONObject json = new JSONObject();

    try {
        String url = params.getString("url");

        com.google.android.gms.plus.PlusShare.Builder b = new PlusShare.Builder(this.cordova.getActivity());

        Intent shareIntent = new PlusShare.Builder(this.cordova.getActivity())
        .setType("text/plain")
        .setText(params.getString("content"))
        .setContentUrl(Uri.parse( params.getString("url")))
        .getIntent();

        MyApp app = (MyApp)this.cordova.getActivity();
        app.startActivityForResult((CordovaPlugin) this, shareIntent, 256);

    } catch(Exception e) {
        raiseError("Error posting");
    }

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    this.cordova.setActivityResultCallback(this);
    try {
        if (requestCode == REQUEST_CODE_RESOLVE_ERR && resultCode == Activity.RESULT_OK) {
            mConnectionResult = null;
            mPlusClient.connect();
        } else if( requestCode == 256 ) {
            if( resultCode == -1 ) { //success

            } else { //fail and/or canceled

            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        this.raiseError(e.getClass() + " - " + e.getMessage() + " - " + e.getStackTrace());
    }       

}

0 个答案:

没有答案