在友盟中下载QQ的SDK:
http://bbs.umeng.com/portal.php
SDK文件目录介绍
- main -- 核心库
umeng_social_api.jar
umeng_social_net.jar
umeng_social_tool.jar
- platforms -- 分享平台库
QQ精简版(SocialSDK_QQ_Simplify.jar)
这里只列举QQ、最终platforms文件夹内包含的文件与下载页面选择的平台有关
- shareboard
umeng_shareboard_widget.jar(工程中存在support v4或不使用面板可以不加)
umeng_social_shareboard.jar
拷贝jar及res
拷贝jar和res有如下两种形式
a.将main文件夹以及platform(选择你想使用的平台即可)文件下,对应的资源文件和jar放入你的工程
修改AndroidManiFest
首先需要添加权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<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"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
其中由于QQ登陆模块重复添加的权限
友盟分享分为两种形式:
- 分享面板分享,用户可以调用我们提供的默认分享面板UI,打开分享面板,然后点击分享面板的对应平台进行分享
- 直接分享,用户可以自己写分享按钮,或者触发事件,然后调用我们的分享方法,进行分享。
设置分享链接
分享链接可以使用UMWeb进行分享:
UMWeb web = new UMWeb(Defaultcontent.url);
web.setTitle("This is music title");//标题
web.setThumb(thumb); //缩略图
web.setDescription("my description");//描述
打开分享面板
在需要弹出分享面板选择页的地方调用下列代码
new ShareAction(MainActivity.this) .withText("hello")要分享的网页 .withMedia(web)分享的APPsetDisplayList中设置的枚举参数就是最终分享面板中显示的平台,
所传入参数的顺序即为最终面板分享平台的排列顺序 .setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN) .setCallback(umShareListener).open();
onActivityResult实现方法如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
直接分享
简而言之,直接分享就是在用户自己的界面组件中插入分享行为
分享可以通过如下代码实现,不同平台只要传入不同的SHARE_MEDIA即可。
new ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ)
.withText("hello")
.setCallback(umShareListener)
.share();
其中umShareListener为回调监听,构建如下,其中分享成功会回调onComplete,取消分享回调onCancel,分享错误回调onError,对应的错误信息可以用过onError的Throwable参数来打印
private UMShareListener umShareListener = new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
//分享开始的回调
}
@Override
public void onResult(SHARE_MEDIA platform) {
Log.d("plat","platform"+platform);
Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(MainActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
if(t!=null){
Log.d("throw","throw:"+t.getMessage());
}
}
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
}
};
详细代码见http://dev.umeng.com/social/android/share-detail
compile 'com.github.bumptech.glide:glide:3.8.0' compile 'de.hdodenhof:circleimageview:2.1.0'
在Gradle Scripts的工程下加入这两个JAR包
Glide是和Imageloader一样的图片展示控件使用方法:
Glide.with(MainActivity.this) //上下文.load(map.get("iconurl")) //要在登陆中展示的User的图片.into(img); //xml布局中的控件
circleimageview //直接在xml中使用<de.hdodenhof.circleimageview.CircleImageView android:layout_width="50dp" android:layout_height="50dp" android:id="@+id/img" />效果展示是一张圆形的图片