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);
}
最后直接在点击事件中调用这个方法就好了。好了,就这些了、。。谢谢