Stiamo provando ad implementare l'autenticazione glassware GDK; abbiamo caricato il nostro APK beta per il team di Google Glass e implementato con successo la nostra pagina di accesso MyGlass. Ora stiamo cercando di accedere token tramite la procedura riportata qui: https://developers.google.com/glass/develop/gdk/authentication#retrieving_accounts_on_glassGlassware auth: android.accounts.OperationCanceledException "La condivisione delle credenziali non è consentita: cancellazione."
Tuttavia l'ultimo passo, String token = future.getResult().getString(AccountManager.KEY_AUTHTOKEN);
si traduce nella seguente eccezione:
09-22 18:07:24.126: I/AccountManagerService(519): Sharing credentials is not allowed: canceling.
09-22 18:07:24.313: W/System.err(5822): android.accounts.OperationCanceledException
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$AmsTask.internalGetResult(AccountManager.java:1503)
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1531)
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1452)
09-22 18:07:24.313: W/System.err(5822): at com.mycom.app.MainActivity$5.run(MainActivity.java:234)
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$11.run(AccountManager.java:1427)
09-22 18:07:24.313: W/System.err(5822): at android.os.Handler.handleCallback(Handler.java:733)
09-22 18:07:24.313: W/System.err(5822): at android.os.Handler.dispatchMessage(Handler.java:95)
09-22 18:07:24.313: W/System.err(5822): at android.os.Looper.loop(Looper.java:149)
09-22 18:07:24.313: W/System.err(5822): at android.app.ActivityThread.main(ActivityThread.java:5061)
09-22 18:07:24.313: W/System.err(5822): at java.lang.reflect.Method.invokeNative(Native Method)
09-22 18:07:24.313: W/System.err(5822): at java.lang.reflect.Method.invoke(Method.java:515)
09-22 18:07:24.313: W/System.err(5822): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-22 18:07:24.313: W/System.err(5822): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
09-22 18:07:24.313: W/System.err(5822): at dalvik.system.NativeStart.main(Native Method)
La richiesta che stiamo cercando di spingere via specchio API è formata come questo (e restituisce un codice di stato OK):
POST https://www.googleapis.com/mirror/v1/accounts/google_user_token/com.ourcom.app.session/ourapp_username
BODY
{"authTokens":[{"type":"com.ourcom.app.session","authToken":"****************"}]}
HEADERS
{"Authorization":"Bearer ya29.iAAf********","Content-Type":"application/json;charset=utf-8"}
e questo è il nostro codice vetro locale:
AccountManager accountManager = AccountManager.get(this);
// Use your Glassware's account type.
Account[] accounts = accountManager.getAccountsByType("com.ourcom.app.session");
// Your auth token type.
final String AUTH_TOKEN_TYPE = "com.ourcom.app.session";
if (accounts.length > 0) {
accountManager.getAuthToken(accounts[0], AUTH_TOKEN_TYPE, null, this, new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> future) {
try {
String token = future.getResult().getString(AccountManager.KEY_AUTHTOKEN);
//do something with token
});
} catch (Exception e) {
//handle exception
//this is where we get our OperationCancelledException
e.printStackTrace();
}
}
}, null);
} else {
//handle not authed state
}
Che cosa potrebbe causare questo tipo di errore? Il nome utente alla fine dell'URL POST Mirror dovrebbe corrispondere a qualcosa di specifico o siamo liberi di usare la nostra cosa?
Grazie per la risposta Tony: 1. si, anche se forse mi sono leggermente confuso, quindi devo solo ricontrollare: l'url Mirror è .../com.mycom.myapp.session/... , il tipo di token è com.mycom.myapp.session, il tipo di account è com.mycom.myapp.session, ma l'ID bundle è com.mycom.myapp. È tutto corretto? 2. sì, ho seguito i passaggi: 1. reset vetri di fabbrica, 2. installato su myglass accendendo l'app, 3. installato una nuova versione tramite ADB (firmata con lo stesso keystore) - sia la versione myglass che la nuova versione lancia l'eccezione di cui sopra. – Peter
@Peter .. Sei in grado di risolvere il problema? Sto anche ricevendo la stessa eccezione qui. – Bharath
@TaruniNeema abbiamo sollevato un problema con Google un paio di mesi fa e da allora sono stato in contatto semi-regolare con il supporto. Apparentemente stanno ancora esaminando il problema, il che mi fa pensare che sia un bug la loro fine. Per prima cosa proverei tutti i suggerimenti sopra, ma tornerò sicuramente anche qui quando (se?) Avremo una correzione da parte di G. – Peter