Spending whole day to find out that Android is not playing well with the
authentication mechanism in google data api.
The following code runs fine in a standard JavaSE environment but fails
with a java.io.SocketException in Android:
"Permission denied (maybe missing INTERNET permission)".
public class PicasaWebServiceTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
PicasawebService pws = new PicasawebService("xxx-picasa-1");
pws.setUserCredentials("[email protected]", "xxx"); // fine in
JavaSE, fails in Android
System.err.println("done");
}
}
Any idea how to circumvent this?
> Hi,
>
> I am using Android SDK 1.5 on a Windows 7 machine. I am trying to
> connect to Google's Picasa web service. In the manifest file I use the
> permission
>
> <uses-permission android:name="android.permission.INTERNET"></uses-
> permission>
>
> Google username (full email-address) and password has been verified by
> me but I still get this exception:
>
> 12-17 12:08:26.541: WARN/System.err(931):
> com.google.gdata.util.AuthenticationException: Error connecting with
> login URI
> 12-17 12:08:26.570: WARN/System.err(931): at
> com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken
> (GoogleAuthTokenFactory.java:479)
> 12-17 12:08:26.590: WARN/System.err(931): at
> com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials
> (GoogleAuthTokenFactory.java:336)
> 12-17 12:08:26.590: WARN/System.err(931): at
> com.google.gdata.client.GoogleService.setUserCredentials
> (GoogleService.java:362)
> 12-17 12:08:26.600: WARN/System.err(931): at
> com.google.gdata.client.GoogleService.setUserCredentials
> (GoogleService.java:317)
> 12-17 12:08:26.600: WARN/System.err(931): at
> com.google.gdata.client.GoogleService.setUserCredentials
> (GoogleService.java:301)
> 12-17 12:08:26.609: WARN/System.err(931): at
> de.test.PicasaWebHandler.<init>(PicasaWebHandler.java:41)
> 12-17 12:08:26.609: WARN/System.err(931): at
> de.dirkmanske.picasadroid.MainActivity.onCreate(MainActivity.java:32)
> 12-17 12:08:26.619: WARN/System.err(931): at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> 1123)
> 12-17 12:08:26.619: WARN/System.err(931): at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> 2231)
> 12-17 12:08:26.680: WARN/System.err(931): at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
> 2284)
> 12-17 12:08:26.716: WARN/System.err(931): at
> android.app.ActivityThread.access$1800(ActivityThread.java:112)
> 12-17 12:08:26.730: WARN/System.err(931): at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
> 12-17 12:08:26.740: WARN/System.err(931): at
> android.os.Handler.dispatchMessage(Handler.java:99)
> 12-17 12:08:26.752: WARN/System.err(931): at android.os.Looper.loop
> (Looper.java:123)
> 12-17 12:08:26.761: WARN/System.err(931): at
> android.app.ActivityThread.main(ActivityThread.java:3948)
> 12-17 12:08:26.761: WARN/System.err(931): at
> java.lang.reflect.Method.invokeNative(Native Method)
> 12-17 12:08:26.771: WARN/System.err(931): at
> java.lang.reflect.Method.invoke(Method.java:521)
> 12-17 12:08:26.771: WARN/System.err(931): at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
> (ZygoteInit.java:782)
> 12-17 12:08:26.780: WARN/System.err(931): at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
> 12-17 12:08:26.780: WARN/System.err(931): at
> dalvik.system.NativeStart.main(Native Method)
> 12-17 12:08:26.790: WARN/System.err(931): Caused by:
> java.net.SocketException: Permission denied (maybe missing INTERNET
> permission)
> 12-17 12:08:26.864: WARN/System.err(931): at
> org.apache.harmony.luni.platform.OSNetworkSystem.createSocketImpl
> (Native Method)
> 12-17 12:08:26.881: WARN/System.err(931): at
> org.apache.harmony.luni.platform.OSNetworkSystem.createSocket
> (OSNetworkSystem.java:85)
> 12-17 12:08:26.881: WARN/System.err(931): at
> org.apache.harmony.luni.net.PlainSocketImpl2.create
> (PlainSocketImpl2.java:59)
> 12-17 12:08:26.910: WARN/System.err(931): at
> java.net.Socket.checkClosedAndCreate(Socket.java:829)
> 12-17 12:08:26.960: WARN/System.err(931): at
> java.net.Socket.connect(Socket.java:984)
> 12-17 12:08:26.960: WARN/System.err(931): at
> org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>
> (HttpConnection.java:67)
> 12-17 12:08:26.960: WARN/System.err(931): at
> org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager
> $ConnectionPool.getHttpConnection(HttpConnectionManager.java:151)
> 12-17 12:08:26.970: WARN/System.err(931): at
> org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager.getConnection
> (HttpConnectionManager.java:73)
> 12-17 12:08:26.970: WARN/System.err(931): at
> org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getHTTPConnection
> (HttpURLConnection.java:826)
> 12-17 12:08:26.970: WARN/System.err(931): at
> org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.connect
> (HttpURLConnection.java:812)
> 12-17 12:08:26.970: WARN/System.err(931): at
> org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getOutputStream
> (HttpURLConnection.java:1153)
> 12-17 12:08:26.980: WARN/System.err(931): at
> com.google.gdata.client.GoogleAuthTokenFactory.makePostRequest
> (GoogleAuthTokenFactory.java:537)
> 12-17 12:08:26.980: WARN/System.err(931): at
> com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken
> (GoogleAuthTokenFactory.java:477)
> 12-17 12:08:27.110: WARN/System.err(931): ... 19 more
>
> Any help appreciated. Thank you.
>
> squibber
>
--
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en