Android Studio:com.google.android.gms.auth.GoogleAuthException:BadUsername

时间:2015-03-25 02:32:56

标签: android oauth-2.0

我根本不知道问题是什么。我阅读了所有API文档并查看了1个可用的StackOverflow问题无济于事。我确实生成了客户端ID和匹配我的包名称和调试SHA1代码的东西。我的目标是连接到特定的Google帐户,无论用户和设备如何。从某种意义上说,帐户是我的后端数据库,但作为常规的驱动器帐户。我也不想要与AccountManager / Picker有任何关系。这似乎是一个如此阴暗和模糊的主题,如果有人对它有所了解,我将非常感激。

public class MainActivity extends ActionBarActivity {

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

    new RetrieveTokenTask().execute();

}

private class RetrieveTokenTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        String token = "";
        try {
            token = GoogleAuthUtil.getToken(getApplicationContext(), "288683421512-blablablamyuserblabla.apps.googleusercontent.com", "oauth2:drive");
        } catch (IOException e) {
            e.printStackTrace();
        } catch (GoogleAuthException e) {
            e.printStackTrace();
        }
        return token;
    }


}



@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

}

1 个答案:

答案 0 :(得分:0)

请注意,GoogleAuthUtil.getToken()需要与设备上的现有帐户一起使用。例如,对于此API https://developers.google.com/android/reference/com/google/android/gms/auth/GoogleAuthUtil#getToken(android.content.Context, java.lang.String, java.lang.String),您应该传入设备上现有的Google帐户名称作为第二个参数。