uMeng第三方登录_umservicefactory.getumsocialservice login-程序员宅基地

技术标签: umeng  

public class UmengLogin extends Activity{

static UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.login");

/** QQ第三方登录     */
public static void QQ_login(final Context mContext){

mController.doOauthVerify(mContext, SHARE_MEDIA.QQ, new UMAuthListener() {


   public void onStart(SHARE_MEDIA platform) {
       Toast.makeText(mContext, "授权开始", Toast.LENGTH_SHORT).show();
   }
   public void onError(SocializeException e, SHARE_MEDIA platform) {
       Toast.makeText(mContext, "授权错误", Toast.LENGTH_SHORT).show();
   }
   public void onComplete(Bundle value, SHARE_MEDIA platform) {
       Toast.makeText(mContext, "授权完成", Toast.LENGTH_SHORT).show();
       //获取相关授权信息
       mController.getPlatformInfo(mContext, SHARE_MEDIA.QQ, new UMDataListener() {
   public void onStart() {
       Toast.makeText(mContext, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
   }                                              
   public void onComplete(int status, Map<String, Object> info) {
           if(status == 200 && info != null){
               StringBuilder sb = new StringBuilder();
               Set<String> keys = info.keySet();
               for(String key : keys){
                  sb.append(key+"="+info.get(key).toString()+"\r\n");
               }
               Log.d("TestData",sb.toString());
               //发送广播,把头像的url和用户名发送出去
               Intent intent=new Intent();
               intent.setAction("org.crazyit.action.CRAZY_BROADCAST");
               intent.putExtra("tou_url", info.get("profile_image_url").toString());
               intent.putExtra("tou_name", info.get("screen_name").toString());
               mContext.sendBroadcast(intent);
               
           }else{
              Log.d("TestData","发生错误:"+status);
           }
   }
      });
   }
   public void onCancel(SHARE_MEDIA platform) {
       Toast.makeText(mContext, "授权取消", Toast.LENGTH_SHORT).show();
   }

} );
}
/** 新浪第三方登录     */
public static void sina_login(final Context mContext){
mController.doOauthVerify(mContext, SHARE_MEDIA.SINA,new UMAuthListener() {
            public void onError(SocializeException e, SHARE_MEDIA platform) {
            }
            public void onComplete(Bundle value, SHARE_MEDIA platform) {
                if (value != null && !TextUtils.isEmpty(value.getString("uid"))) {
                    Toast.makeText(mContext, "授权成功.",Toast.LENGTH_SHORT).show();
                  //获取相关授权信息
           mController.getPlatformInfo(mContext, SHARE_MEDIA.QQ, new UMDataListener() {
       public void onStart() {
           Toast.makeText(mContext, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
       }                                              
       public void onComplete(int status, Map<String, Object> info) {
               if(status == 200 && info != null){
                   StringBuilder sb = new StringBuilder();
                   Set<String> keys = info.keySet();
                   for(String key : keys){
                      sb.append(key+"="+info.get(key).toString()+"\r\n");
                   }
                   Log.d("TestData",sb.toString());
                   //发送广播,把头像的url和用户名发送出去
                   Intent intent=new Intent();
                   intent.setAction("org.crazyit.action.CRAZY_BROADCAST");
                   intent.putExtra("tou_url", info.get("profile_image_url").toString());
                   intent.putExtra("tou_name", info.get("screen_name").toString());
                   mContext.sendBroadcast(intent);
                   
               }else{
                  Log.d("TestData","发生错误:"+status);
               }
       }
          });
                } else {
                    Toast.makeText(mContext, "授权失败",Toast.LENGTH_SHORT).show();
                }
            }
            public void onCancel(SHARE_MEDIA platform) {}
            public void onStart(SHARE_MEDIA platform) {}
});
}


}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zixinfei/article/details/51068284

智能推荐

深度学习的定义和未来发展趋势-程序员宅基地

文章浏览阅读6.8k次,点赞43次,收藏92次。深度学习的定义及原理深度学习是一种基于神经网络、具有多个隐藏层来提取高级抽象特征进行模式识别和决策的机器学习技术。其核心思想与人脑神经元相似,通过逐层的计算和学习,将输入数据转化为具有更高级别的表示,从而实现对复杂数据结构的建模和分析。深度学习中最重要的思想是构建可训练的人工神经网络模型。这些模型是由数十甚至数百个神经元层组成的架构,其中每个层都执行着不同的计算和激活函数以处理和传递信息。传递信号的过程被称为前向传播,相应地,在误差信号返向更新参数的过程被称为反向传播。深度学习的关键特征。_深度学习

经理人必看的10个管理网站_经理在用什么网站,-程序员宅基地

文章浏览阅读724次。经理人必看的10个管理网站时间:2005年2月21日9:47 阅读数: 管理这玩艺远远看着如同象牙塔中的佛牙舍利,可观而不可玩。其实身在其中无非就是一张窗户纸,没有什么大不了的……… 管理这玩艺远远看着如同象牙塔中的佛牙舍利,可观而不可玩。其实身在其中无非就是一张窗户纸,没有什么大不了的。网络的发展,就是让我们在充分的分享信息资源的同时,通过基于我们的知识结构的合理性分析,使我们_经理在用什么网站,

cpp在vsCode中的编译运行与调试_vscode 编译cpp-程序员宅基地

文章浏览阅读1.5k次,点赞20次,收藏20次。cpp在vsCode中的编译运行与调试_vscode 编译cpp

计组——计算机中的数据表示之原码反码补码移码_字长n位一个有符号数。表示的范围。-程序员宅基地

文章浏览阅读1.2k次。文中统一用 n 表示机器字长原码无符号数可表示范围:0 —— 2n-1 (即全0到全1)有符号数用机器字长第一位表示符号位,剩下的表示数值位,假设机器字长为8位(下同),可以表示为:+8:[x]原 = 0000 1000-8:[x]原 =1000 1000红色标识符号位,下同整数可表示的范围:-(2n-1) —— 2n-1+0.75:[x]原 = 0110 0000-0.75:[x]原 = 1110 0000小数可表示的范围:-(1-2-n)—— 1-2-n(关于原点对称)_字长n位一个有符号数。表示的范围。

排查FGC问题实践-程序员宅基地

文章浏览阅读982次。针对大对象或者长生命周期对象导致的FGC,可通过jmap-histo命令并结合dump堆内存文件作进一步分析,需要先定位到可疑对象。内存泄漏频繁创建了大量对象,但是无法被回收(比如IO对象使用完后未调用close方法释放资源),先引发FGC,最后导致OOM。了解JVM的参数设置,包括堆空间各个区域的大小设置,新生代和老年代分别采用了哪些垃圾收集器,然后分析JVM参数设置是否合理。JVM参数设置问题包括总内存大小、新生代和老年代的大小、Eden区和S区的大小、元空间大小、垃圾回收算法等等。..._fgc

InfoQ 2023 年趋势报告:Java 篇-程序员宅基地

文章浏览阅读160次。这份报告总结了 InfoQ Java 编辑团队对目前 Java 领域技术采用和新兴趋势的看法。我们关注 Java 及相关的语言(如 Kotlin 和 Scala)、Java 虚拟机(JVM),以及基于 Java 的框架和工具。我们讨论了 Core Java 的趋势,比如新版本 Java 的采用,以及和等框架的演进。这份报告有两个主要目标:帮助技术领导者做出中长期的技术投资决策。帮助个体开发者选择在哪些领域投入宝贵的时间和资源去学习和发展技能。这是我们发布的第五份 Java 趋势报告。

随便推点

Java-布隆过滤器的实现_布隆过滤器java实现-程序员宅基地

文章浏览阅读974次,点赞24次,收藏21次。如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路,但是随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢 (O(n)O(logn)不过世界上还有一种叫作散列表(又叫哈希表,Hash table)的数据结构。它可以通过一个Hash函数将一个元素映射成一个位阵列(Bit array)中的一个点。这样一来,我们只要看看这个点是不是1就可以知道集合中有没有它了。于是乎,布隆过滤器便应运而生了。_布隆过滤器java实现

2023年度十大前沿科技趋势发布:6大赛道10项技术,智能体和3D生成正引爆AI,空间计算开启终端变革、端到端自动驾驶成共识...-程序员宅基地

文章浏览阅读264次。量子位智库 发自 凹非寺量子位 | 公众号 QbitAI在前沿科技这个充满创新活力的领域中,量子位智库密切关注着哪些新技术和突破性进展将主导未来科技潮流。区别于其他智库和研究机构,量子位智库基于量子位长期以来对AI及其他前沿科技的追踪报道,积累了数年对前沿科技的深入洞察。《年度十大前沿科技趋势》系列报告准确把握科技前沿趋势、深入了解技术突破的本质、串联技术突破与产业风口、站在前沿科技产学研交汇地带..._近几年的新技术新科技

AutoSAR系列讲解(深入篇)14.4-Mcal Dio代码分析(上)_阅读mcal代码-程序员宅基地

文章浏览阅读7.2k次,点赞8次,收藏13次。用DIO的代码做一些讲解,帮助大家更好的理解代码_阅读mcal代码

flowplayer在线播放器_flowplayer 在线-程序员宅基地

文章浏览阅读4.6k次。Flowplayer支持播放flv、swf等流媒体以及图片文件,能够非常流畅的播放视频文件,支持自定义配置和扩展。1、加载flowplayer.js在要播放视频的页面的head之间加入flowplayer.js。 您可以到flowplyer官网上下载最新版本:http://flowplayer.org/download/index.html2、XHTML在需要加入播放器的_flowplayer 在线

http:请求中get和post方法的区别_http中get和post的区别-程序员宅基地

文章浏览阅读3.1k次。一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET和HEAD的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。_http中get和post的区别

xcode的环境变量,Build Settings参数,workspace及联编设置_xcodebuild build workspace-程序员宅基地

文章浏览阅读2.9k次。一、xcode4中的环境变量$(BUILT_PRODUCTS_DIR)build成功后的,最终产品路径--可以在Build Settings参数的Per-configuration Build Products Path项里设置$(TARGET_NAME)目标工程名称$(SRCROOT)工程文件(比如Nuno.xcodeproj)的路径_xcodebuild build workspace

推荐文章

热门文章

相关标签