我已按照快速入门指南(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());
}
}