編輯:Android資訊
社交登錄授權,分享SDK
支持微信、微博、QQ登錄授權
微信好友、微信朋友圈、微博、QQ好友、QQ空間分享
compile 'com.elbbbird.android:socialsdk:0.2.0@aar'
SocialSDK.setDebugMode(true); //默認false
SDK使用了Otto作為事件庫,用以組件通信。(其實我是不想寫startActivityForResult …)
在調用SocialSDK.oauth()接口Activity的onCreate()方法內添加
BusProvider.getInstance().register(this);
在該Activity的onDestroy()方法添加
@Override protected void onDestroy() { BusProvider.getInstance().unregister(this); super.onDestroy(); }
添加回調接口
@Subscribe public void onOauthResult(BusEvent event) { switch (event.getType()) { case BusEvent.TYPE_GET_TOKEN: SocialToken token = event.getToken(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_GET_TOKEN " + token.toString()); break; case BusEvent.TYPE_GET_USER: SocialUser user = event.getUser(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_GET_USER " + user.toString()); break; case BusEvent.TYPE_FAILURE: Exception e = event.getException(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_FAILURE " + e.toString()); break; case BusEvent.TYPE_CANCEL: Log.i(TAG, "onOauthResult#BusEvent.TYPE_CANCEL"); break; } }
配置微博後台回調地址
SDK的默認回調地址為http://www.sina.com,需要在微博後台配置,否則會提示回調地址錯誤。
如果在SocialSDK.initWeibo()方法自定義了回調地址,需要在後台配置為相應地址。
oauth
SocialSDK.initWeibo("app_key"); SocialSDK.oauthWeibo(context);
onActivityResult
SocialSDK.oauthWeiboCallback(context, requestCode, resultCode, data);
revoke
SocialSDK.revokeWeibo(context);
WXEntryActivity
創建包名:package_name.wxapi
在該包名下創建類WXEntryActivity繼承自WXCallbackActivity
package com.encore.actionnow.wxapi; public class WXEntryActivity extends WXCallbackActivity { }
AndroidManifest.xml
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
oauth
SocialSDK.initWeChat("app_id", "app_secret"); SocialSDK.oauthWeChat(context);
revoke
SocialSDK.revokeWeChat(context);
AndroidManifest.xml
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
以上配置中的XXXXXXXXX換成app_id.
oauth
SocialSDK.initQQ(app_id); SocialSDK.oauthQQ(context);
onActivityResult
if (requestCode == Constants.REQUEST_LOGIN || requestCode == Constants.REQUEST_APPBAR) { SocialSDK.oauthQQCallback(requestCode, resultCode, data); }
revoke
SocialSDK.revokeQQ(context);
配置微博後台回調地址
SDK的默認回調地址為http://www.sina.com,需要在微博後台配置,否則會提示回調地址錯誤。
如果在SocialSDK.init()方法自定義了回調地址,需要在後台配置為相應地址。
WXEntryActivity
創建包名:package_name.wxapi
在該包名下創建類WXEntryActivity繼承自WXCallbackActivity
package com.encore.actionnow.wxapi; public class WXEntryActivity extends WXCallbackActivity { }
AndroidManifest.xml
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencentXXXXXXXXX" /> </intent-filter> </activity>
以上配置中的XXXXXXXXX換成app_id.
oauth
SocialSDK.init("wechat_app_id", "wechat_app_secret", "weibo_app_id", "qq_app_id"); SocialSDK.oauth(context);
revoke
SocialSDK.revoke(context);
關於三個平台的賬號
微博應用程序注冊完成後,需要在後台配置測試賬號,包名,簽名信息,然後開始測試;
微信應用程序注冊後,需要配置包名和簽名,並提交審核通過,可以獲得分享權限。SSO登錄權限需要開發者認證。(保護費不到位,測試都不能做)
QQ需要在後台配置測試賬號才能SSO登錄。
是否需要配置權限?
SDK已經在aar中添加三個平台需要的權限,以下
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
原文鏈接: Effective OkHttp 原文作者 : Michael Parker 譯文出自 : 掘金翻譯計劃 譯者 : Brucezz 校對者: iT
全局變量顧名思義就是在整個的類中或者可在多個函數中調用的變量。也稱為外部變量。局部變量則是特定過程或函數中可以訪問的變量。聲明一個變量是很 容易的,但是講到使用的
FragmentTabHost作為Android4.0版本的控件, 已經被項目廣泛使用, 5.0版本又推出TabLayout+ViewPager顯示多頁. 我來講
最近公司在項目上要使用到表情與鍵盤的切換輸入,自己實現了一個,還是存在些缺陷,比如說鍵盤與表情切換時出現跳閃問題,這個相當困擾我,不過所幸在Github(其中一個