[android]初识ShareSDK——嵌入和登陆

ShareSDK可以做什么

ShareSDK是一个第三方分享平台,集成了常用的一些平台分享:例如QQ、微信、新浪微博、腾讯微博、开心网、人人网等等,可以理解为,ShareSDK本身不产生数据,只是提供了这样一个平台。好处是:开发者不必单个再去实现各个网站的分享,可以轻松的实现登陆,分享,获得用户资料,数据统计分析等等。

如何将ShareSDK嵌入到项目中

在Sharesdk平台上注册登录添加应用,下载和安装SDK的安装包

集成sdk到项目中(双击QuickIntegrater启动程序,复制生成的文件到项目中)

修改项目名和包名

把这些文件都替换(复制)到工程里相应的文件夹中。

配置AndroidManifest.xml

添加权限

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<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"/>

添加activity信息

<activity
 android:name="cn.sharesdk.framework.ShareSDKUIShell"
 android:theme="@android:style/Theme.Translucent.NoTitleBar"
 android:configChanges="keyboardHidden|orientation|screenSize"
 android:screenOrientation="portrait"
 android:windowSoftInputMode="stateHidden|adjustResize" >
 <intent-filter>
 <data android:scheme="tencent100371282" />
 <action android:name="android.intent.action.VIEW" />
 <category android:name="android.intent.category.BROWSABLE" />
 <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>
 </activity>

各平台的key去相关开放平台去申请

替换mob后台申请的Appkey与各个平台申请的key

登录

登陆分两种:

要数据不要功能showuser(),要功能不要数据Authorize()。

ShowUser() 登陆,获取个人信息(用户名,昵称等等)(申请key要验证身份证信息)

Authorize()    分享的时候用(不需要自己完成,shareSDK自己判断是否授权,只做分享不需要验证身份证)

登陆需要的四个方法:

1.Platform p = ShareSDK.getPlatform(LoginActivity.this, platformName);

2.p.setPlatformActionListener(PlatformActionListener arg0);

3.ShowUser()要数据不要功能:登录获取个人信息(昵称,性别,头像)(申请key等值必须经过身份证正反面上传验证)如果不获取指定ID,传入null值。

4.authorize()要功能不要数据:分享时使用(不需要自己完成,sharesdk自行判断是否授权只做分享是不需要身份证验证的)

5.这里需要注意一下新浪微博的第三方登陆,是需要限制单点登陆,即加一句:

sinaPlatform.SSOSetting(true);

6.微博的单独分享时回调地址:RedirectUrl="https://api.weibo.com/oauth2/default.html"

然后在回调方法里,可以得到登陆成功,失败,暂停的回调方法:

	p.setPlatformActionListener(new PlatformActionListener() {

			@Override
			public void onError(Platform arg0, int arg1, Throwable arg2) {
				Log.e("tag", arg2.getMessage());
			}

			@Override
			public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
				Log.i("tag", "新浪微博的数据库"+arg0.getDb().toString());
			}

			@Override
			public void onCancel(Platform arg0, int arg1) {

			}
		});

在登陆成功时,可以看到,可以获取shareSDK给我们提供的数据库,但是各个平台的数据库字段不一样,下面列出了几个获取头像图片和默认头像图片的:

if (plat.getName().equals(SinaWeibo.NAME)) {
				name = map.get("name").toString();
				id = map.get("id").toString();
				url = map.get("avatar_large").toString();
			} else if (plat.getName().equals(QZone.NAME)) {
				name = map.get("nickname").toString();
				id = plat.getDb().getUserId();
				url = map.get("figureurl_qq_2").toString();
			} else if (plat.getName().equals(TencentWeibo.NAME)) {
				name = map.get("nick").toString();
				id = plat.getDb().getUserId();
				if (Utils.isEmpty(map.get("head").toString())) {
					url = "http://mat1.gtimg.com/www/mb/img/p1/head_normal_180.png";
				} else {
					url = map.get("head").toString() + "/180";
				}
			} else if (plat.getName().equals(Renren.NAME)) {
				name = map.get("name").toString();
				id = map.get("id").toString();
				if (!Utils.isEmpty(map.get("avatar").toString())) {
					List list = (List) map.get("avatar");
					for (int i = 0; i < list.size(); i++) {
						if (!Utils.isEmpty(list.get(i).toString())) {
							url = ((Map) list.get(2)).get("url").toString();
						}
					}

去掉分享界面shareSDK的logo

在分享的时候,分享界面的actionBar会有shareSDK的Logo,若想去掉:

1.参考sdk说明文档,继承一个AuthorizeAdapter的类,然后重写其onCreate方法

2.将此类注册到AndroidManifest.xml的ShareSDKUIShell下面

时间: 2024-08-19 13:42:35

[android]初识ShareSDK——嵌入和登陆的相关文章

android客户端向服务器端验证登陆方法的实现1

遇到的问题:一个条件查询与多个条件查询,所用到的方式不一样 参考文档: http://www.oschina.net/question/1160609_133366    mybatis多条件查询的一个错误 解决方案如下: 利用序列号的方式解决多个参数的查询问题.对象与数据库关系的映射层. 层次结构如下: 首先定义model层里面的Userlist类,这是和我们后台mysql里面的表是一一对应的,然后定义UserlistMapper类,这个类主要是用来封装一些个方法,比如说增删改查等.其实现通过

android客户端向服务器端验证登陆方法的实现2

一.在上一篇文章中,我只是提到了其中一种方法来实现登陆 大家可以参见: http://www.apkbus.com/android-45004-1-1.html      android获取web服务器端session并验证登陆 http://blog.csdn.net/cainiao123hack/article/details/8255848   服务器端向Android客户端传值--登录实现 http://zhidao.baidu.com/link?url=8g9EWhyUkUgUr1dh

Android使用sharesdk一键分享

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 本文是如下文献相关内容的总结: 1.<TCP/IP详解 卷1> 2.<TCP/IP协议族>     3.<计算机网络第5版>     OSPF(Open Shortest Path First开放最短路径优先 )是一种IGP(内部网关协议)协议,主要用于AS(自治系统内部).该协议是一种基于链路状态的协议,而RIP则是基于距离向量的协议,在两者的底层实现算法中,RIP采用的是Bellman-Ford算法(贝尔曼福特算法

Android初识之Activity组件

之前自己的编程完全是在PC上进行的,而且主要是在算法和数据结构上.由于某些需要加之认识到Android的重要性,且大学走到现在基本上没什么课了,空闲时间很多,于是就开始学习Android.本系列博客都将围绕Android应用程序设计展开,由于本人是完全没有Android程序设计基础,所以内容都很基础,希望与大家交流学习并得到指点. 1.Activity类的onCreate()方法 对于具有可视化界面的Android程序来说,必然要有一个Activity类或其派生类对象.一般来说,Activity

Android(安卓)手机登陆Exchange 2013邮箱帐号的配置

Android(安卓)手机登陆Exchange 2013邮箱帐号的配置 本博文介绍Android(安卓)手机配置Exchange 2013邮箱帐号,由于Android手机种类和固件版本太多,这里介绍比较通用的三星S5830的配置,请看步骤: 1.直接在应用程序中选择“电子邮件”,然后进入“设置电子邮件”界面如下, 输入邮箱地址和密码,点击“下一步”, 2.选择POP3帐户或IMAP(当然,选择这两种类型的提前是Exchange服务器已经启用了POP3或IMAP的服务), 3.在接收服务器设置界面

cocos2d-x在iOS/Android双平台上嵌入WebView

注:文章首次发布于个人博客,现将技术文章转移至此. http://blog.go3k.org/cocos2dx-add-webview/ 游戏中的帮助和游戏公告,可以通过嵌入显示WebView的方案来实现,通过编辑HTML来修改.更新公告的样式和内容都很方便. iOS平台嵌入 iOS平台上的嵌入很顺利,网上有现成的教程加代码,关键是做好OC与C++代码混编的封装. 参考如下链接中的实现方式: cocos2d-x 使用UIWebView加载网页 Android平台嵌入 1. 通过JNI从cocos

Android 手机app 嵌入网页操作

1.主Activity的源代码: package com.jhtg.happyagent; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.W

Android二维码扫描登陆网页

1        二维码扫描登陆 1,web端生成二维码,传递uuid,并存入数据库 2,web端轮训查询信息,是否有数据库扫描二维码信息 3,手机端扫描二维码,获取UUID,传递用户名.密码web端 4,web查询数据库中用户信息(UserLogin),将登陆信息(用户名,密码)存入数据库. 5,web轮训查到用户登陆信息,信息完整,则登陆成功. 1.1    web端 1.1.1  导入依赖包(二维码生成QRCode.jar) jar包下载:QRCode.jar 1.1.2  用户登陆信息实

Android 集成FaceBook实现第三方登陆

一,必要准备: 上面是官方英文文档,下面详细解释一下: Facebook app : 即需要在Facebook Developer平台,创建自己的App, Facebook SDk: 添加Facebook SDK到自己的项目中, Facebook App ID: 需要得到在Facebook Developer平台创建的App 的ID. Android Key Hash: 得到Android Hash Key. Facebook Activity: 将FaceBook Activity包含在你的项