与Scribe和SharedPreferences建立连接

时间:2013-11-13 13:43:36

标签: android oauth scribe fitbit

登录后直接连接一切都很棒。然后我存储到SharedPreferences值请求(第一个令牌访问登录站点 - 虽然我知道它不需要...),pin(pin也不需要),access_token和access_secret ......

我尝试使用存储的SharedPreferences ...

数据建立连接
OAuthService service= new ServiceBuilder()
    .provider(FitbitApi.class)
    .apiKey( oauth_consumer_key )
    .apiSecret( oauth_consumer_secret )
    .build();
Log.d("TOKEN", access_token.getToken());
OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_ACTIVITIES_URL);
service.signRequest(access_token, request);

Response response = request.send();

我收到错误:

11-13 14:40:55.657: W/dalvikvm(9502): threadid=1: thread exiting with uncaught exception (group=0x418e8898)
11-13 14:40:55.657: E/AndroidRuntime(9502): FATAL EXCEPTION: main
11-13 14:40:55.657: E/AndroidRuntime(9502): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.iecom.fitbitgb/com.iecom.fitbitgb.FitBitLogin}: org.scribe.exceptions.OAuthConnectionException: There was a problem while creating a connection to the remote service.
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.ActivityThread.access$700(ActivityThread.java:159)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.os.Looper.loop(Looper.java:137)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.ActivityThread.main(ActivityThread.java:5419)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at java.lang.reflect.Method.invokeNative(Native Method)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at java.lang.reflect.Method.invoke(Method.java:525)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at dalvik.system.NativeStart.main(Native Method)
11-13 14:40:55.657: E/AndroidRuntime(9502): Caused by: org.scribe.exceptions.OAuthConnectionException: There was a problem while creating a connection to the remote service.
11-13 14:40:55.657: E/AndroidRuntime(9502):     at org.scribe.model.Request.send(Request.java:70)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at org.scribe.model.Request.send(Request.java:76)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at com.iecom.fitbitgb.FitBitCommunicator.getUserActivity(FitBitCommunicator.java:43)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at com.iecom.fitbitgb.FitBitLogin.onCreate(FitBitLogin.java:46)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.Activity.performCreate(Activity.java:5372)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
11-13 14:40:55.657: E/AndroidRuntime(9502):     ... 11 more
11-13 14:40:55.657: E/AndroidRuntime(9502): Caused by: android.os.NetworkOnMainThreadException
11-13 14:40:55.657: E/AndroidRuntime(9502):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1144)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:311)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at org.scribe.model.Response.<init>(Response.java:29)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at org.scribe.model.Request.doSend(Request.java:117)
11-13 14:40:55.657: E/AndroidRuntime(9502):     at org.scribe.model.Request.send(Request.java:66)
11-13 14:40:55.657: E/AndroidRuntime(9502):     ... 17 more

我认为在新构建OAuthService时我做错了什么......有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是您的问题:Caused by: android.os.NetworkOnMainThreadException 从Android 4.0开始,你无法在主线程上建立url连接。请改用threadsAsyncTasks

干杯