我根本不知道问题是什么。我阅读了所有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);
}
}
答案 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帐户名称作为第二个参数。