【发布时间】:2014-04-04 14:30:55
【问题描述】:
我正在使用新的Google Drive Android API,我可以连接并执行all that it will allow me to do,但为了使用电子表格服务,我需要从登录用户中提取帐户名/电子邮件。
我该怎么做?
这是我连接 Google Drive API 的代码。它工作正常。
private void connect() {
if (isGooglePlayServicesAvailable()) {
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
// And, connect!
if (!mGoogleApiClient.isConnecting() && !mGoogleApiClient.isConnected()) {
mGoogleApiClient.connect();
writeLog("Connecting...");
}
}
}
这是我使用 SpreadsheetService API 的地方,但我需要帐户名来获取令牌。
String accountName = "???"; // how do I get this From GoogleClientApi / mGoogleApiClient ?
String accessToken = GoogleAuthUtil.getTokenWithNotification(GDriveActivity.this, accountName, scope, null);
SpreadsheetService service = new SpreadsheetService("v1");
我已经尝试过添加这个:
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
...在onConnected 方法中,但它会抛出NullPointerException。
另外,这是我的权限:
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission
android:name="android.permission.VIBRATE" />
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.GET_ACCOUNTS" />
<uses-permission
android:name="android.permission.NETWORK" />
<uses-permission
android:name="android.permission.USE_CREDENTIALS" />
【问题讨论】:
标签: android google-spreadsheet-api google-drive-android-api