我正在使用新的Google Drive Android API,我可以连接并做它允许我做的一切,但是为了使用SpreadsheetService,我需要从已登录用户中提取accountName/email。
我该怎么做?
这是我连接Google Drive API的代码。它工作得很好。
这里我正在使用SpreadsheetService API,但我需要账户名来获取令牌。
我该怎么做?
这是我连接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" />