Używam nowego Google Drive Android API i mogę się połączyć i zrobić all that it will allow me to do, ale aby móc korzystać z usługi SpreadsheetService, muszę wyodrębnić nazwę accountName/e-mail od zalogowanego użytkownika .Pobierz nazwę konta/e-mail z Dysku Google Android API
Jak to zrobić?
Oto kod, pod którym łączę interfejs API Dysku Google. To działa dobrze.
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...");
}
}
}
Oto gdzie używam API SpreadsheetService, ale muszę nazwę konta, aby uzyskać tokenu.
String accountName = "???"; // how do I get this From GoogleClientApi/mGoogleApiClient ?
String accessToken = GoogleAuthUtil.getTokenWithNotification(GDriveActivity.this, accountName, scope, null);
SpreadsheetService service = new SpreadsheetService("v1");
Próbowałem to dodając w ten sposób:
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
... w metodzie onConnected
, ale rzuca NullPointerException
.
Również tutaj są moje uprawnienia:
<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" />
prosimy nadać jej czytania https: // programiści .google.com/+/mobile/android/people – Raghuram