我从新的 Google Play 服务开始,并尝试使用我在博客和参考示例中找到的信息来创建一个完整的工作应用程序。恕我直言,这些示例中缺少一些东西。
新标准 AccountPicker.newChooseAccountIntent 可用于选择在设备上注册的 Google 帐户。使用该对话框会在返回时返回帐户的名称。
现在这些示例展示了如何获取令牌。新的 GoogleAuthUtil.getToken 方法需要一封电子邮件来获取令牌。
有什么东西不见了。如何从给定的帐户名获取电子邮件?
提前谢谢了。
public class MyActivity extends Activity {
public static final String AUTHTOKENSCOPE_DRIVE = "oauth2:https://www.googleapis.com/auth/drive";
String accountName = "";
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
accountName = intent.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
// Need to fetch token with email
// String token = GoogleAuthUtil.getToken(this, <???email???>,
AUTHTOKENSCOPE_DRIVE);
} else {
}
break;
default:
super.onActivityResult(requestCode, resultCode, intent);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int rc = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
switch (rc) {
case ConnectionResult.SUCCESS:
Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String[] {
"com.google"
},
true, null, AUTHTOKENSCOPE_DRIVE, new String[] {
"Just a text"
}, null);
startActivityForResult(intent, 1);
break;
}
}
}