Glassware auth: android.accounts.OperationCanceledException "No se permiten las credenciales de uso compartido: cancelación."

Estamos tratando de implementar GDK cristalería autenticación; Hemos subido nuestro APK beta al equipo de Google Glass e implementado con éxito nuestra página de inicio de sesión de MyGlass. Ahora estamos tratando de acceder al token mediante los pasos enumerados aquí: https://developers.google.com/glass/develop/gdk/authentication#retrieving_accounts_on_glass

Sin embargo, el último paso, String token = future.getResult().getString(AccountManager.KEY_AUTHTOKEN); Está resultando en la siguiente excepción:

 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 solicitud que estamos intentando empujar a través de Mirror API se forma de esta forma (y devuelve un código de estado 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"} 

Y este es nuestro código de vidrio local:

 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 } 

¿Qué podría estar causando este tipo de error? ¿Es el nombre de usuario al final de la URL de POST de espejo que se supone que coincide con algo específico o que estamos libres para usar nuestra propia cosa?

Un par de cosas para comprobar:

  1. ¿El nombre del paquete de su aplicación coincide exactamente con el nombre del paquete proporcionado al enviar su Glassware?
  2. ¿Ha instalado su APK presentado al menos una vez a través de MyGlass, en lugar de siempre lado de carga con adb ? Asegúrese de desinstalar su APK y luego instalarlo activándolo en MyGlass para que los permisos se configuren correctamente; A partir de ese momento, puede continuar desarrollando reemplazando el APK sobre adb .
  • Google Glass no aparece como dispositivo Android por ADB
  • Google Glass GDK: cómo comunicarse con el dispositivo Android
  • Cómo reflejar la pantalla de Google Glass a PC / Mac?
  • Google Glass: seleccione "Cancelar" o "Aceptar" en el cuadro de diálogo
  • BroadcastReceiver onReceive () no llamado cuando se registra dinámicamente
  • ¿Cómo puedo iniciar una intención de una tarjeta en Google Glass?
  • No puedo enviar correo desde Google Glass
  • Comando de voz para aplicaciones en Google Glass?
  • Google Glass agrega margen a la actividad?
  • Amplíe el tiempo de grabación de vídeo en Google Glass
  • Pantalla negra mostrada después de la intención de la cámara
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.