utilizzando Google Play Services:
http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html
Aggiungi https://www.googleapis.com/auth/userinfo.profile alla vostra portata.
Esempio:
String scope="oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
final String token = GoogleAuthUtil.getToken(context, "[email protected]", scope);
O "forza bruta"
Intent res = new Intent();
res.addCategory("account:[email protected]");
res.addCategory("scope:oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
res.putExtra("service", "oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
Bundle extra= new Bundle();
extra.putString("androidPackageName","com.your.package");
res.putExtra("callerExtras",extra);
res.putExtra("androidPackageName","com.your.package");
res.putExtra("authAccount","[email protected]");
String mPackage = "com.google.android.gms";
String mClass = "com.google.android.gms.auth.TokenActivity";
res.setComponent(new ComponentName(mPackage,mClass));
startActivityForResult(res,100);
Ora, quando si revoca l'accesso qui https://accounts.google.com/IssuedAuthSubTokens l'applicazione che si mostra la finestra per il permesso di nuovo nel dispositivo.
fonte
2013-08-14 21:24:52
eventualmente utile nota per gli altri: potrebbe essere necessario effettuare la scrivibile cartella di sistema, se sqlite3 non è già sul dispositivo, e si bisogno di spingerlo via adb. http://stackoverflow.com/questions/6066030/read-only-file-system-on-android –
Un altro suggerimento: avevo bisogno di chiamare "sqlite" con le virgolette, altrimenti ho ricevuto un errore. Vedi http://stackoverflow.com/questions/13696259/sqlite3-on-android-fails-with-syntax-error-unexpected/13697187#13697187 –
di interesse per coloro che ancora corrono in questo problema più avanti lungo la strada: (1) su Android 4.2 che ha aggiunto il supporto multiutente, il file accounts.db si troverà in una sottodirectory per utente, ad es. /data/system/users/0/accounts.db (2) quando mi sono imbattuto nella necessità di revocare queste autorizzazioni, ho scoperto che la tabella concessioni in /data/system/users/0/accounts.db era vuota. Stavo usando la nuova versione di Google Play Services per ottenere token, e sembrerebbe che memorizzasse le concessioni da qualche altra parte - forse anche nel cloud (!). – Hugh