- 产品概述
Android U-share 6.0sdk是在5.0+的基础上做了进一步的优化,降低了包的大小,对于三方的jar提供了更多选择(精简版,原生版),并提供了更多实用的接口,方便了用户的集成和升级。同时6.0的版本兼容5.0+的版本,老用户,只要替换对应的jar就可以了。 特别提示:之后我们会针对6.0+的版本提供更多方便个性的功能,所以建议用户升级,并留意我们接下来的新功能。
2. 获取友盟Appkey
如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它.
如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击添加新应用,填写完应用基本信息后,将进入”下载SDK并添加代码”页面,此页面即可得到Appkey。
3. 下载并安装SDK
下载地址
下载SDK最新版 如下图所示:
在解压后的\social_sdk_example\libs目录下选择自己项目需要使用到的SDK
不太清楚可以全选导入自己项目的libs目录
然后将解压后的\main目录下的res内的文件全部导入自己的项目
到自己项目的清单配置文件中添加权限
<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.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
在application节点内添加如下配置
<meta-data
android:name="UMENG_APPKEY"
android:value="自己在友盟中申请的appkey" >
</meta-data>
申请及绑定第三方账号
登录新浪微博开放平台(点击链接),填写相关应用信息并上传icon图片。注意修改安全域名为sns.whalecloud.com 同时设置授权回调页为http://sns.whalecloud.com/sina2/callback 安全域名设置在应用信息–>基本信息,具体位置参考下图
授权回调页、取消授权回调页设置在应用信息–>高级信息,具体位置参考下图
安全域名的修改需要二次审核通过才生效,授权回调页修改即时生效
新浪填写签名参照下面的方法
导出带签名的apk文件并安装到手机,同时安装签名工具(点击下载)在签名工具中输入apk的包名,将获取到的签名填写到新浪微博开放平台,注意签名和包名填写错误会导致新浪微博SSO授权异常。
注意使用签名工具前请确保你的项目已经安装到手机
需要在友盟后台进行配置,如下图所示:
目前需要在友盟后台绑定的第三方账号为:新浪微博、腾讯微博、人人网、豆瓣、Qzone,其余平台如微信、QQ直接在代码中设置
登录友盟网站->左上角选择你们的产品->组件->社会化组件->设置
在activity中调用
public class MainActivity extends Activity {
private UMShareAPI mShareAPI;
private SHARE_MEDIA platform = SHARE_MEDIA.SINA;
private UMAuthListener umAuthListener = new UMAuthListener() {
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
Toast.makeText( getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
mShareAPI.getPlatformInfo(MainActivity.this, platform, new UMAuthListener() {
@Override
public void onError(SHARE_MEDIA arg0, int arg1, Throwable arg2) {
// TODO Auto-generated method stub
}
@Override
public void onComplete(SHARE_MEDIA arg0, int arg1, Map<String, String> arg2) {
//转换为set
Set<String> keySet = arg2.keySet();
//遍历循环,得到里面的key值----用户名,头像....
for (String string : keySet) {
//打印下
Log.d("TAG", string);
}
//得到key值得话,可以直接的到value
String name = arg2.get("screen_name");
String url = arg2.get("profile_image_url");
Log.d("TAG", "**"+name+"/"+"url");
}
@Override
public void onCancel(SHARE_MEDIA arg0, int arg1) {
// TODO Auto-generated method stub
}
});
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mShareAPI = UMShareAPI.get(this);
//mShareAPI.doOauthVerify(this, platform, umAuthListener);
//SHARE_MEDIA platform = SHARE_MEDIA.QQ;第三方软件是什么,SHARE_MEDIA.第三方软件名称)
//PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3"); //微信 appid appsecret
PlatformConfig.setSinaWeibo("582436437f2c7462d2003112","7f0bc46ac7efba060ac3f7610cb5f789");//新浪微博 appkey appsecret
/*PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); // qq qzone appid appkey
PlatformConfig.setAlipay("2015111700822536");//alipay appid
*/ }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
mShareAPI.onActivityResult(requestCode, resultCode, data);
}
public void login(View v){
mShareAPI.doOauthVerify(this, platform, umAuthListener);
}
}