2012-03-12 12 views
2

J'essaie de comprendre comment utiliser Google Api pour accéder/modifier Google SpreadSheet. Je souhaite toujours avoir une connexion avec la même feuille de calcul provenant de nombreux périphériques. J'ai eu des exemples en utilisant le AccountManager, mais je ne devrais pas utiliser le compte d'utilisateur. Il y a un bon turorial? En ce moment, j'ai ce qui suit .. est-ce exact?Android Google Api pour SpreadSheet

AccountManager accountManager = AccountManager.get (this); ArrayList googleAccounts = new ArrayList();

// Just for the example, I am using the first google account returned. 
    Account account = new Account("[email protected]", "com.google"); 

    // "wise" = Google Spreadheets 
    AccountManagerFuture<Bundle> amf = accountManager.getAuthToken(account, "wise", null, this, 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"); 

    } 
    catch (Exception e) { 
     // TODO: handle exception 
    } 
+0

J'ai trouvé un bon exemple ici: http://code.google.com/p/yetanothercoder/ espérons que cela peut aider quelqu'un –

Répondre

2

autorisations requises:

<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/> 
<uses-permission android:name="android.permission.GET_ACCOUNTS"/> 
<uses-permission android:name="android.permission.USE_CREDENTIALS"/> 

Choisissez le type de jeton nécessaire outh de la table:

http://code.google.com/intl/ja/apis/spreadsheets/faq_gdata.html#Authentication

API Spreadsheets données sage

Exemple de code:

public class OuthTokenActivity extends Activity { 
String tag = "DEBUG"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    AccountManager mAccountManager = AccountManager.get(this); 
    for (Account account : mAccountManager.getAccountsByType("com.google")) { 
     mAccountManager.getAuthToken(account, "wise", savedInstanceState, 
       this, resultCallback, null); 
    } 
} 

AccountManagerCallback<Bundle> resultCallback = new AccountManagerCallback<Bundle>() { 
    public void run(AccountManagerFuture<Bundle> future) { 
     try { 
      Bundle result = future.getResult(); 
      String token = (String) result.get(AccountManager.KEY_AUTHTOKEN); 
      String name = (String) result.get(AccountManager.KEY_ACCOUNT_NAME); 
      Log.d(tag, String.format("name: %s, token: %s", name, token)); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}; 

}

+1

merci, mais cela nécessite que l'utilisateur a eu dans ses comptes la feuille de calcul un. Imaginez que vous deviez commercialiser l'application et que vous vouliez que la feuille de calcul soit votre serveur ... vous ne pouvez demander à personne d'installer le compte dans son compte. Il n'y a aucun moyen qui peut permettre la "connexion aveugle" du code? –

1

Il est maintenant an API publié, disponible pour le script java, ce qui pourrait être exécuté dans votre application. Et ils montrent comment l'intégrer dans une application Android dans une vidéo here.