Hello, I am trying to follow the code from
http://www.tbray.org/ongoing/When/201x/2011/09/29/AERC I have obtained the library with: $ git clone http://code.google.com/p/aerc/ but I cannot make out what the difference is between the following two variables: App.ROOT_URI App.ROOT_URI and App.SECRET_URI These are java.net.URL instances but I cannot figure out why they would have to differ in value. After adding the following <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> and fixing the code that uses the library I get the following error message: Checkin failed: Authentication failed: Authentication failed: No network connection but my wi-fi is on and working. I did see the screen prompting me to use my account credentials the first time but not thereafter. Any ideas why it is failing? package com.foo.appenginetest; import java.net.URL; import android.accounts.Account; import android.accounts.AccountManager; import android.app.Activity; import android.app.IntentService; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.widget.TextView; class App { static URL ROOT_URI = null; static URL SECRET_URI = null; } public class AppEngineTestActivity extends Activity { private Activity activity; private Activity mActivity; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { App.SECRET_URI = App.ROOT_URI = new URL("http://hellodata.appspot.com"); } catch (Exception e) {} setContentView(R.layout.main); mActivity = activity = this; (new Worker()).execute(); } private class Worker extends AsyncTask<Void, Void, Response> { AppEngineClient client; protected Response doInBackground(Void... params) { AccountManager manager = AccountManager.get(activity); Account[] accounts = manager.getAccountsByType("com.google"); client = new AppEngineClient(App.ROOT_URI, accounts[0], activity); return client.get(App.SECRET_URI, null); } protected void onPostExecute(Response response) { TextView text = (TextView) activity.findViewById(R.id.text); if (response == null) text.setText("Checkin failed: " + client.errorMessage()); else if ((response.status / 100) != 2) text.setText("Checkin failed: " + new String(response.body)); else text.setText("The secret is: " + new String(response.body)); } } class PrepareUpload extends AsyncTask<Void, Void, String> { URL APP_URI = App.ROOT_URI; String mErrorMessage = null; // ... @Override protected String doInBackground(Void... params) { AccountManager manager = AccountManager.get(activity); Account[] accounts = manager.getAccountsByType("com.google"); Account account = accounts[0]; // ... Authenticator authent = Authenticator.appEngineAuthenticator(mActivity, account, APP_URI); String authToken = authent.token(); if (authToken == null) mErrorMessage = authent.errorMessage(); return authToken; } @Override protected void onPostExecute(String authToken) { // ... if (authToken != null) { Intent intent = new Intent(mActivity, UploadService.class); intent.putExtra("authtoken", authToken); startService(intent); } } } public class UploadService extends IntentService { public UploadService() { super(null); } URL APP_URI = App.ROOT_URI; // ... @Override protected void onHandleIntent(Intent intent) { String authToken = intent.getStringExtra("authtoken"); AppEngineClient client = new AppEngineClient(APP_URI, authToken, this); // ... } private void transmit(String body, AppEngineClient client, URL target) { //Response response = client.post(target, null, body.toByteArray()); Response response = client.post(target, null, body.getBytes()); if (response == null) error(client.errorMessage()); if ((response.status / 100) != 2) error(getString(R.string.upload_failed) + response.status); } private void error(String foo) { System.out.println(foo); } } } App.ROOT_URI -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

