2013-03-20 88 views
3

我试图使用由谷歌所产生的意图Play服务选择谷歌帐户关闭AccountPicker.newChooseAccountIntent,对话框当帐户中选定

private void showGoogleAccountPicker() { 
    Intent googlePicker = AccountPicker.newChooseAccountIntent(null, null, 
     new String[] { GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE }, true, null, null, null, null); 
    startActivityForResult(googlePicker, PICK_ACCOUNT_REQUEST); 
    } 

    @Override 
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
    if (requestCode == PICK_ACCOUNT_REQUEST && resultCode == RESULT_OK) { 
     String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 
     Log.d(TAG, "Account Name=" + accountName); 
    } 
    } 

对话框显示我的谷歌帐户,并选择创建一个新的一。

enter image description here

如果让我选择,我正确地重定向到帐户创建向导中的“添加帐户”选项,但如果我选择现有帐户,并单击“确定”,对话框关闭,但它永远不会返回活动

Logcat只打印这一行。我认为它没有任何事情要做。

W/IInputConnectionWrapper(23576): showStatusIcon on inactive InputConnection 

来源

http://gmariotti.blogspot.com.es/2013/03/snippet-google-picker-account.html http://developer.android.com/reference/com/google/android/gms/common/AccountPicker.html

+0

你是什么意思“永远不会返回到活动”浪费?难道'onActivityResult'得到根本叫什么名字? – ianhanniballake 2013-03-20 17:04:58

+0

这正是我的意思。我已经试过调试和日志。 D,它永远不会进入那里 – Maragues 2013-03-20 19:41:49

+0

感谢您的关注ian,但像往常一样,这是一个愚蠢的错误,花了我几个小时才找到。 – Maragues 2013-03-21 10:12:58

回答

8

原来我的活动是不是在返回堆栈,因为我明确要求它在清单

<activity 
      android:name=".ui.LoginActivity" 
      android:label="@string/app_name" 
      android:noHistory="true" 

所以对话框找不到任何人返回结果。

什么时间:(

+2

我也有这样的问题,原因是android:launchMode =“singleInstance”in清单 – 2013-07-30 02:10:05