QQ:
在此之前需要先註冊開發者信息。並生成appId
打開騰訊開發平臺(http://open.qq.com);
點擊移動應用;
進入應用管理
點擊管理應用,找到自己之前創建的Demo
進入Demo 看到Demo 的信息記錄下來
創建的時間;
appId:
appkey:
再 創建並登陸http://www.mob.com 進入後臺
點擊ShareSDK ShareSDK For Android下載並創建 好應用
選擇 上方的添加,進入看到App key
下載ShareSdk
選擇需要的項目(最好全選)
解壓得到三個包
選擇 ShareSDK for Android 找到 QuickIntegrater 這個包
打開控制檯 輸入java -jar 空格 QuickIntegrater 這個包的路徑
得到彈窗
輸入項目的名稱 和包名 最好從清單文件中獲取
勾選繼承快捷分享,方便做一鍵分享的操作,點擊確定,在ShareSDK for Android 包中會生成一個Simple 文件,裏面有四個文件
然後將assets 整個文件一起復制到 main 包下和java 同級
將src 目錄下的 cn 和com 兩個包拷貝到java的目錄下
將libs 文件拷貝到libs 中並add as Library
將res muluxia 的六個文件都拷貝到res 目錄下,做好了這些工作開始在代碼中進行調試
進入ShareSDK.xml 文件當中
找到
<ShareSDK AppKey = "********8***"/>
選擇<QQ
Id="7"
SortId="7"
AppId="輸入自己之前創建項目的appid"
AppKey="輸入自己之前創建項目的appid"
ShareByAppClient="true"
Enable="true" />
在代碼中創建一個方法 :
private void loginByShareQQ() {
//用ShareSDK登錄或者分享之前,必須初始化
ShareSDK.initSDK(this);
/* 創建一個QQ平臺對象*/
Platform qq = ShareSDK.getPlatform(QQ.NAME);
//如果已經通過驗證了,那麼可以直接獲取QQ的相關信息
if(qq.isValid()){
PlatformDb db=qq.getDb();
String userId=db.getUserId();
String userName=db.getUserName();
String userIcon=db.getUserIcon();
String userGender = db.getUserGender();
LogUtil.w("tag","UserId="+userId+" userName="+userName+" userIcon="+userIcon +" userGender="+userGender);
return;
}
/*true 通過web認證, false 通過客戶端認證*/
qq.SSOSetting(false);
qq.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
LogUtil.d("tag", "登錄成功。。。");
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
LogUtil.w("tag", "登錄失敗");
}
@Override
public void onCancel(Platform platform, int i) {
LogUtil.w("tag", "取消登錄");
}
});
//兩種認證方式
//需要導入用戶的,有自己的用戶數據庫
qq.showUser(null);
//不需要導入用戶的,只需要一個登錄過程
//qq.authorize();
}
在清單文件中添加權限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<!-- 藍牙分享所需的權限 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
在Application 中添加:
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<data android:scheme="tencentAppid"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- 調用新浪原生SDK,需要註冊的回調activity -->
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
新浪微博:
進入新浪微博開發者平臺http://open.weibo.com/?sudaref=www.2doit.net:
點擊移動應用 立即接入 ——>選擇創建應用——> 完善應用的名稱
已經創建好的,在我的應用中點擊應用的名稱,點擊左邊的應用信息
點擊編輯,通過 下載使用平臺提供的簽名工具獲取簽名下載工具就好了,輸入包名,會生成簽名
下面的* Android下載地址什麼的,只是做測試的話隨意,http://www.baidu.com,這也可以,
下面有你的App key 和 APp Secret
選擇保存
在高級信息裏面選擇
OAuth2.0 授權設置
在測試信息裏面,添加自己的微博名稱
好了這樣就差不多了
在代碼中添加這樣的方法:
private void loginByShareSDK(Platform platform){
//如果已經通過驗證了,那麼可以直接獲取platform的相關信息
if(platform.isValid()){
PlatformDb db=platform.getDb();
String userId=db.getUserId();
String userName=db.getUserName();
String userIcon=db.getUserIcon();
String userGender = db.getUserGender();
LogUtil.w("tag","UserId="+userId+" userName="+userName+" userIcon="+userIcon +" userGender="+userGender);
return;
}
/*true 通過web認證, false 通過客戶端認證*/
platform.SSOSetting(false);
platform.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
LogUtil.d("tag", "登錄成功。。。");
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
LogUtil.w("tag", "登錄失敗");
}
@Override
public void onCancel(Platform platform, int i) {
LogUtil.w("tag", "取消登錄");
}
});
//兩種認證方式
//需要導入用戶的,有自己的用戶數據庫
platform.showUser(null);
//不需要導入用戶的,只需要一個登錄過程
//platform.authorize();
}
我們在這個方法中添加一個監聽事件:
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = v.getId();
//用ShareSDK登錄或者分享之前,必須初始化
ShareSDK.initSDK(LoginActivity.this);
Platform platform=null;
switch (id) {
case R.id.login_qq_iv:
loginByShareQQ();
// loginByQQ();
platform=ShareSDK.getPlatform(QQ.NAME);
break;
case R.id.login_wb_iv:
platform=ShareSDK.getPlatform(SinaWeibo.NAME);
break;
}
//通過ShareSDk登錄
loginByShareSDK(platform);
}
};
這樣就能選擇自己的登陸方式了
下面來說一下關於一鍵分享的事:
很簡單的一段代碼:
private void showShare() {
ShareSDK.initSDK(this);
OnekeyShare oks = new OnekeyShare();
//關閉sso授權
oks.disableSSOWhenAuthorize();
// title標題,印象筆記、郵箱、信息、微信、人人網和QQ空間使用
oks.setTitle(getString(R.string.share));
// titleUrl是標題的網絡鏈接,僅在人人網和QQ空間使用
oks.setTitleUrl("http://url");
// text是分享文本,所有平臺都需要這個字段
oks.setText("第一次分享做測試分享");
// imagePath是圖片的本地路徑,Linked-In以外的平臺都支持此參數
//oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片
// url僅在微信(包括好友和朋友圈)中使用
//oks.setUrl("http://url");
// comment是我對這條分享的評論,僅在人人網和QQ空間使用
oks.setComment("我是測試評論文本");
// site是分享此內容的網站名稱,僅在QQ空間使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此內容的網站地址,僅在QQ空間使用
oks.setSiteUrl("http://sharesdk.cn");
// 啓動分享GUI
oks.show(this);
}
最後直接在點擊事件中調用這個方法就好了。好了,就這些了、。。謝謝