Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Existe una forma oficial de autenticar Google Data API en Android mediante cuentas AccountManager?

Estoy intentando usar la API de datos de Google para una aplicación instalada en Android 2.1. No quiero que el usuario tenga que introducir sus credenciales si ya tiene una cuenta configurada en el dispositivo. Por lo tanto, estoy usando el AccountManager con el tipo de cuenta "com.google".

Pero, ¿a dónde ir desde allí? No hay ejemplos de Google sobre cómo realizar la autenticación de Google (authTokenType, etc.). Hay un proyecto que intenta hacerlo ( http://code.google.com/p/google-authenticator-for-android ) de una manera general pero sin ningún éxito, todavía.

¿Puede ser tan difícil? Esto es realmente mantener atrás las aplicaciones como los clientes de Google Reader que tienen que pedir al usuario sus credenciales de Google (que esperamos que nadie les da).

Cualquier puntería / consejo es apreciada.

  • ¿Mezclar dos corrientes audio en una sola corriente audio en android?
  • Android Custom View no maneja la transparencia / alpha de la manera correcta
  • Comunicación USB entre Android (modo accesorio) y Windows PC (host)
  • Hacer una aplicación de cámara con Android utilizando la API de cámara que funcionará en todos los dispositivos
  • Aplicación de reconocimiento de voz de Android sin pop-up
  • ¿Cómo imprimir desde la impresora térmica en Android?
  • Cómo eliminar el valor duplicado de arraylist en Android
  • Android EditText con word-wrap pero sin devoluciones duras
  • 3 Solutions collect form web for “¿Existe una forma oficial de autenticar Google Data API en Android mediante cuentas AccountManager?”

    Sí, esto es posible. Una vez que tenga un identificador en la cuenta de Google (como describió), sólo tiene que solicitar un token de autorización del AccountManager para el servicio GData.

    Si el dispositivo Android ya tiene un token de autenticación (para el servicio GData particular al que intenta acceder), se le devolverá. De lo contrario, el AccountManager lo solicitará y lo devolverá. De cualquier manera, no es necesario preocuparse por esto como el AccountManager lo maneja.

    En el ejemplo siguiente, estoy utilizando la API de Google Spreadsheets:

    ArrayList<Account> googleAccounts = new ArrayList<Account>(); // Get all accounts Account[] accounts = accountManager.getAccounts(); for(Account account : accounts) { // Filter out the Google accounts if(account.type.compareToIgnoreCase("com.google")) { googleAccounts.add(account); } } AccountManager accountManager = AccountManager.get(activity); // Just for the example, I am using the first google account returned. Account account = googleAccounts.get(0); // "wise" = Google Spreadheets AccountManagerFuture<Bundle> amf = accountManager.getAuthToken(account, "wise", null, activity, null, null); try { Bundle authTokenBundle = amf.getResult(); String authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); // do something with the token InputStream response = sgc.getFeedAsStream(feedUrl, authToken, null, "2.1"); } 

    Espero que esto ayude.

    Eche un vistazo al código de ejemplo en la API de datos de google. Lo importante después de la autenticación es llamar a GoogleHeaders.setGoogleLogin (String).

    Asegúrese de llamar a GoogleHeaders.setGoogleLogin después de la autenticación. A continuación, puede comprobar este código de ejemplo para obtener más ayuda si es necesario.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.