ICS及以上版本的android系統不允許在主UI線程上進行網路操作[稱為Strict Mode],因此當不正確地使用了人人SDK後,獲得session-key的過程中會出現錯誤(顯示為黃色的warning),實際上就是操作被阻止了。
有三個解決辦法:
1.不用UI線程調用webview框,登陸返回時便不會出錯
2.野辦法:關閉strict mode
1 2 3 4 5 6 7 8 9 10 11 |
//Stop strict mode checking try { Class strictModeClass=Class.forName("android.os.StrictMode"); Class strictModeThreadPolicyClass=Class.forName("android.os.StrictMode$ThreadPolicy"); Object laxPolicy = strictModeThreadPolicyClass.getField("LAX").get(null); Method method_setThreadPolicy = strictModeClass.getMethod( "setThreadPolicy", strictModeThreadPolicyClass ); method_setThreadPolicy.invoke(null,laxPolicy); } catch (Exception e) { Log.d("Strict Mode","Error blocking strict mode."); } |
3.自己重寫oauth處理,不用sdk
4.參考這篇文章(20130806補充)
補充一句,國內對於人人API的文章不是很多,大部分是複製粘貼,可以考慮google一下facebook的API,因為人人就是模仿facebook來做的;微博可以參考twitter
上面的這個解決辦法就是從stackoverflow上關於facebook的一個帖子里找到的(但是當時忘記收藏網址了www
官方文檔:StrictMode