- 浏览: 2224897 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wahahachuang5:
web实时推送技术使用越来越广泛,但是自己开发又太麻烦了,我觉 ...
细说websocket - php篇 -
wahahachuang8:
挺好的,学习了
细说websocket - php篇 -
jacking124:
学习了!支持你,继续
初窥Linux 之 我最常用的20条命令 -
aliahhqcheng:
应该是可以实现的,没有看过源码。你可以参考下:http://w ...
Jackson 框架,轻易转换JSON
package p.wy.hc.activity; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import p.wy.hc.bean.SharedPreferencesForLogin; import p.wy.hc.util.JsonUtils; import p.wy.hc.util.UpdateManager; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Handler.Callback; import android.os.Looper; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.TextView; import cn.sharesdk.framework.AbstractWeibo; import cn.sharesdk.framework.WeiboActionListener; import cn.sharesdk.sina.weibo.SinaWeibo; import cn.sharesdk.tencent.qzone.QZone; /** * @author yangyu * 功能描述:获取用户资料 * * 启动页面时传递一个int类型的字段type,用于标记获取自己的资料(type = 0)还是别人的资料(type = 1)。 * 如果尝试获取别人的资料,示例代码会获取不同平台Share SDK的官方帐号的资料。 * * 如果资料获取成功,会通过{@link ShowInforPage}展示 */ public class MainActivity extends Activity implements Callback, OnClickListener,WeiboActionListener { //定义标题栏布局对象 // private TitleLayout llTitle; private Button sinaBt,qzoneBt,logonBt; private TextView user_phone,user_psw,user_reg; private Handler handler; Message message = null; private static final int DISMISS_PROGRESS_DIALOG = 1; private ProgressDialog progressDialog = null; private Button nextBt; private String userName; private String userPsw; private String flag="false"; //true 为登录成功 private SharedPreferencesForLogin spflusrinfo; private String url; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //初始化ShareSDK AbstractWeibo.initSDK(this); requestWindowFeature(Window.FEATURE_NO_TITLE); handler = new Handler(this); setContentView(R.layout.logon_main); // setContentView(R.layout.logonmain); spflusrinfo= new SharedPreferencesForLogin(MainActivity.this,"shared_prefsusrinfo"); //user logon type initView(); initData(); // 检查软件更新 UpdateManager manager = new UpdateManager(MainActivity.this); manager.checkUpdate(); initUser(); } //查看本地是否有用户信息,有的话直接跳转到主页 public void initUser(){ String userinfo=spflusrinfo.getValue("usrinfo"); } /** * 初始化组件 */ private void initView(){ //得到按钮对象 /****** sinaBt = (Button) findViewById(R.id.sina_id); qzoneBt = (Button) findViewById(R.id.qq_id); user_phone=(TextView)findViewById(R.id.user_phone_number); user_psw=(TextView)findViewById(R.id.user_phone_psw); user_reg=(TextView)findViewById(R.id.user_reg); logonBt=(Button)findViewById(R.id.logon_btn); *****/ sinaBt = (Button) findViewById(R.id.sina_logon); qzoneBt = (Button) findViewById(R.id.qq_logon); } /** * 初始化数据 */ private void initData(){ //设置监听 sinaBt.setOnClickListener(this); qzoneBt.setOnClickListener(this); /**** user_phone.setOnClickListener(this); user_reg.setOnClickListener(this); logonBt.setOnClickListener(this); user_phone.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { // TODO Auto-generated method stub user_phone.setBackgroundResource(R.drawable.aabb2); user_psw.setBackgroundResource(R.drawable.m); } }); user_psw.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { // TODO Auto-generated method stub user_psw.setBackgroundResource(R.drawable.aabb1); user_phone.setBackgroundResource(R.drawable.n); user_psw.setText(""); } }); *****/ } /** * 点击按钮获取授权用户的资料 */ @Override public void onClick(View v) { String name = null; switch (v.getId()) { case R.id.sina_logon: name = SinaWeibo.NAME; break; case R.id.qq_logon: name = QZone.NAME; break; /*************** switch (v.getId()) { case R.id.sina_id: name = SinaWeibo.NAME; break; case R.id.qq_id: name = QZone.NAME; break; case R.id.user_phone_number: user_phone.setBackgroundResource(R.drawable.aabb2); user_psw.setBackgroundResource(R.drawable.m); user_phone.setText(""); break; // case R.id.user_phone_psw: // user_psw.setBackgroundResource(R.drawable.aabb1); // user_phone.setBackgroundResource(R.drawable.n); // user_psw.setText(""); // break; case R.id.user_reg: Intent intentreg = new Intent(); intentreg.setClass(MainActivity.this, RegisterInfoActivity.class); startActivity(intentreg); break; case R.id.logon_btn: userName=user_phone.getText().toString(); userPsw=user_psw.getText().toString(); Toast.makeText(MainActivity.this, "登录",Toast.LENGTH_SHORT).show(); /***** new Thread(runnablelogon).start(); if(flag.equals("true")){ //登录成功跳转 Intent intent = new Intent(); intent.setClass(MainActivity.this, HealthCheckActivity.class); intent.putExtra("userName", userName); startActivity(intent); }else{ //登录失败 Toast.makeText(MainActivity.this, "登录失败",Toast.LENGTH_SHORT).show(); } break; *****/ } if (name != null) { AbstractWeibo weibo = AbstractWeibo.getWeibo(this, name); weibo.setWeiboActionListener(this); String account = null; weibo.showUser(account); HealthCheckApplication hca=(HealthCheckApplication)this.getApplication(); hca.weibo=weibo; } } /***** //登录验证 private Runnable runnablelogon = new Runnable() { public void run() { Map<String, String> map = new HashMap<String, String>(); map.put("username", userName); map.put("pwd", userPsw); map.put("dtype", "18"); String result=HttpClientUtil.getResultData(CDefault.LOGON_URL, map); flag=FileUtil.getJSON(result, "authkey"); //true 为登录成功 } }; *****/ public void onComplete(AbstractWeibo weibo, int action,HashMap<String, Object> res) { Message msg = new Message(); msg.arg1 = 1; msg.arg2 = action; msg.obj = weibo; handler.sendMessage(msg); Message msg2 = new Message(); if(weibo.getDb().getWeiboNname().equals("QZone")){ msg2.what = 2; }else if(weibo.getDb().getWeiboNname().equals("SinaWeibo")){ msg2.what = 1; } JsonUtils ju = new JsonUtils(); String json = ju.fromHashMap(res); msg2.obj = ju.format(json); handler.sendMessage(msg2); } public void onError(AbstractWeibo weibo, int action, Throwable t) { t.printStackTrace(); Message msg = new Message(); msg.arg1 = 2; msg.arg2 = action; msg.obj = weibo; handler.sendMessage(msg); } public void onCancel(AbstractWeibo weibo, int action) { Message msg = new Message(); msg.arg1 = 3; msg.arg2 = action; msg.obj = weibo; handler.sendMessage(msg); } /** 处理操作结果 */ public boolean handleMessage(Message msg) { switch(msg.what) { case 1: { try { SharedPreferencesForLogin spflsina = new SharedPreferencesForLogin(this,"shared_prefssina"); String userdata=spflsina.getValue("strsina"); if(userdata!=null){ Intent intent = new Intent(); intent.setClass(MainActivity.this, HealthCheckActivity.class); String[] userInfo=userdata.split(","); intent.putExtra("userName", userInfo[0]); intent.putExtra("userIamage", userInfo[1]); url=userInfo[1]; new ShowImgThread().start(); //intent.putExtra("userIamage", userImg); intent.putExtra("weiboData", "SinaWeibo"); spflusrinfo.putValue("Logon_Sina", "SinaWeibo"); spflusrinfo.putValue("Logon_QQ", null); startActivity(intent); }else{ Intent i = new Intent(this, ShowInforActivity.class); i.putExtra("data", String.valueOf(msg.obj)); i.putExtra("weiboData", "SinaWeibo"); spflusrinfo.putValue("Logon_Sina", "SinaWeibo"); spflusrinfo.putValue("Logon_QQ", null); startActivity(i); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } break; case 2: { try { SharedPreferencesForLogin spflqq = new SharedPreferencesForLogin(this,"shared_prefsqq"); String userdata=spflqq.getValue("strqq"); if(userdata!=null){ System.out.println(userdata); //直接跳转 Intent intent = new Intent(); intent.setClass(MainActivity.this, HealthCheckActivity.class); String[] userInfo=userdata.split(","); intent.putExtra("userName", userInfo[0]); intent.putExtra("userIamage", userInfo[1]); new ShowImgThread().start(); intent.putExtra("weiboData", "QZone"); //intent.putExtra("userIamage", userImg); spflusrinfo.putValue("Logon_Sina", null); spflusrinfo.putValue("Logon_QQ", "QZone"); startActivity(intent); url=userInfo[1]; new ShowImgThread().start(); }else{ Intent i = new Intent(this, ShowInforActivity.class); i.putExtra("data", String.valueOf(msg.obj)); i.putExtra("weiboData", "QZone"); spflusrinfo.putValue("Logon_Sina", null); spflusrinfo.putValue("Logon_QQ", "QZone"); startActivity(i); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } break; default: { AbstractWeibo weibo = (AbstractWeibo) msg.obj; String text = MainActivity.actionToString(msg.arg2); switch (msg.arg1) { case 1: { // 成功 text = weibo.getName() + " completed at " + text; } break; case 2: { // 失败 text = weibo.getName() + " caught error at " + text; } break; case 3: { // 取消 text = weibo.getName() + " canceled at " + text; } break; } //Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); } break; } return false; } /** * 将action转换为String */ public static String actionToString(int action) { switch (action) { case AbstractWeibo.ACTION_AUTHORIZING: return "ACTION_AUTHORIZING"; case AbstractWeibo.ACTION_GETTING_FRIEND_LIST: return "ACTION_GETTING_FRIEND_LIST"; case AbstractWeibo.ACTION_FOLLOWING_USER: return "ACTION_FOLLOWING_USER"; case AbstractWeibo.ACTION_SENDING_DIRECT_MESSAGE: return "ACTION_SENDING_DIRECT_MESSAGE"; case AbstractWeibo.ACTION_TIMELINE: return "ACTION_TIMELINE"; case AbstractWeibo.ACTION_USER_INFOR: return "ACTION_USER_INFOR"; case AbstractWeibo.ACTION_SHARE: return "ACTION_SHARE"; default: { return "UNKNOWN"; } } } /**监听对话框里面的button点击事件*/ DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序 finish(); //这里处理退出前跳到首个加载界面后执行下面的退出 Intent intent = new Intent(); intent.setClass(MainActivity.this, MainActivity.class); startActivity(intent); // 退出程序 Intent mHomeIntent = new Intent( Intent.ACTION_MAIN); mHomeIntent.addCategory(Intent.CATEGORY_HOME); mHomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); startActivity(mHomeIntent); // 第二次关闭 android.os.Process .killProcess(android.os.Process.myPid()); break; case AlertDialog.BUTTON_NEGATIVE:// "取消"第二个按钮取消对话框 break; default: break; } } }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK ) { // 创建退出对话框 AlertDialog isExit = new AlertDialog.Builder(this).create(); // 设置对话框标题 isExit.setTitle("系统提示"); // 设置对话框消息 isExit.setMessage("确定要退出吗"); // 添加选择按钮并注册监听 isExit.setButton("确定", listener); isExit.setButton2("取消", listener); // 显示对话框 isExit.show(); } return false; } private class ShowImgThread extends Thread { @Override public void run() { Looper.prepare(); returnBitMap(url); Looper.loop(); } }; //获取网络图片 public void returnBitMap(String url) { URL myFileUrl = null; Bitmap bitmap = null; try { myFileUrl = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } try { if(myFileUrl!=null){ HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); is.close(); } } catch (IOException e) { e.printStackTrace(); } HealthCheckApplication applictaion=(HealthCheckApplication)this.getApplication(); if(spflusrinfo.getValue("Logon_Sina")==null){ applictaion.mHeadBmQQ=bitmap; }else{ applictaion.mHeadBmSina=bitmap; } // mHandler.sendEmptyMessage(DOWNLOAD_FINISH); } }
源码下载地址 :http://www.32666.com/file-600256.html
发表评论
-
andorid RecyclerView下拉刷新,上拉加载更多
2016-09-12 10:03 494描述: andorid RecyclerView下拉刷新, ... -
安卓手机赚钱APP—学生赚完美版,一天至少50块 有图有真相
2015-10-10 10:16 9有钱赚,一款能赚钱的APP,一款让你越来越有钱的 ... -
andorid脑筋急转弯(完整数据版)源码
2014-09-25 13:58 877脑筋急转弯(完整数据版),集成海量题目,内容丰富、形式 ... -
android 开发怎么赚钱
2014-04-03 17:26 0大家肯定会问,从事安卓开发,有前途吗? ... -
从初学android到选择每天收入50块,收入还在慢慢增加
2014-04-03 13:44 1445从自学安卓一年到到现在每天有一点的收入还是蛮有成就感的 。本人 ... -
android获取手机中的短信和,android获取手机通讯录联系人和号码
2013-10-24 22:49 2834// 获得所有的联系人 Cursor cur = g ... -
Android 全退出
2013-10-21 13:18 1055/**监听对话框里面的button点击事件*/ ... -
Android开发精典案例60个 超全
2013-10-20 14:48 1472android超全例子,附带源码 。 源码下载地址 ... -
Android实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
2013-10-20 14:40 2215前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己 ... -
【开源项目】Android 手写记事 App(半成品)
2013-10-07 22:08 1124该项目已上传到 CSDN 的 Git 平台中 项目地址:h ... -
安卓折线图插件和自带截图分享的实现
2013-10-08 09:49 1203package com.example.te ... -
ListView的Item中含有EditText,获取EditText里面的值并且刷新ListView值不改变
2013-01-24 00:40 1636最近项目中用ListView ,ListView的item是 ... -
Android 源码的编译
2013-02-21 00:07 635/** 版本:1.0 日期:2009-03-18 作者:HKj ... -
android 导入第三方库出现java.lang.NoClassDefFoundError
2013-03-07 15:26 972导入第3方jar包问题,明明导入了jar但还是报java.la ... -
Android获取SDcard所有的MP3文件的方法
2013-03-17 23:44 1234我们做音乐播放器的时候需要从sdcard里面获取MP3文件和 ... -
解决popupWindow 的android.view.WindowManager$BadTokenException问题
2013-04-17 19:03 1744PopupWindow 写在事件监听里面是不会出现这个异常的 ... -
android对图片的缩放,拖地,跟系统图库的效果一样
2013-04-20 10:36 786之前做项目要对图片的查看,然后就自己写了一个,适合对图片的浏 ... -
自定义ImageView支持缩放,拖拽,方便复用
2013-04-20 17:35 911今天刚发了一篇关于ImageView的缩放和拖拽的博客,然后 ... -
Android在非UI线程中显示Toast
2013-05-09 11:38 1018public void showToast(String m ... -
Android面试题精选,自己收藏下
2013-05-09 13:14 9161.android dvm 的进程和Linux的进程,应用程 ...
相关推荐
QQ和新浪微博授权登录是互联网应用中常见的用户身份验证方式,特别是在移动端。这两种授权登录机制允许用户使用已有的QQ或微博账号快速注册并登录其他第三方应用,简化了用户的账户管理流程,同时也为开发者提供了...
UCHOME作为一款热门的社区建站系统,为了满足用户需求,提供了QQ和新浪的API登录插件。本文将详细介绍这个插件的安装、配置及使用过程,帮助你更好地理解和应用这一功能。 首先,我们要明白UCHOME的QQ、新浪API登录...
本文将深入探讨腾讯QQ、新浪微博和网易的登录API,以及如何在自己的网站上实现这些登录接口。 首先,腾讯QQ的开放平台(Tencent Open API)提供了QQ账号的登录服务,允许用户通过QQ账号快速登录合作网站。QQ登录API...
【腾讯QQ、新浪微博一键登录源码】是一种便捷的用户身份验证解决方案,它允许用户通过他们的腾讯QQ或新浪微博账号快速登录到第三方网站,而无需创建新的账户或记住额外的用户名和密码。这种技术大大提升了用户体验,...
本资源是2013年5月8日版本的腾讯QQ与新浪微博一键登录的源码,对于开发者来说,这是一个很好的学习和参考材料。 一键登录的核心原理是基于OAuth协议,这是一种开放标准,允许用户提供一个令牌,而不是用户名和密码...
在iOS应用开发中,集成第三方登录服务,如QQ登录、微信登录和新浪登录,是提升用户体验和方便用户快速注册及登录的重要功能。标题中的“ios 第三方登陆 QQ登录 微信登录 新浪登录”指的是在iOS应用中实现这三种常见...
QQ和新浪微博都是中国流行的社交媒体平台,它们提供了开放的API接口,允许开发者集成第三方登录功能。下面我们将深入探讨这个主题。 1. **QQ互联(QQ Open Platform)**:QQ互联是腾讯公司提供的一项服务,它允许...
在.NET和ASP.NET开发中,实现QQ登录、新浪微博登录以及网易微博登录的功能是常见的社交网络集成需求。这些功能使得用户可以使用他们在社交媒体平台上的账户直接登录到你的网站,提供了便捷的用户体验并可能增加用户...
ECMALL QQ支付宝 新浪 快捷登录是一种集成QQ、支付宝和新浪等第三方登录服务的解决方案,方便用户在电子商务平台(ECMALL)上快速注册和登录。这种集成方案简化了用户账号创建和验证的过程,提高了用户体验。以下是...
UCHOME作为一款流行的社区建站系统,其QQ、新浪、人人网登录插件为用户提供了无缝对接的登录体验,极大地提升了用户体验和网站的用户注册率。本文将深入探讨这一插件的工作原理、安装配置以及使用中的注意事项。 一...
在Android开发中,第三方登录是一种常见的功能,允许用户通过已有的社交账号(如QQ空间、新浪微博)快速注册或登录到应用,为用户提供便利的同时也提高了用户体验。本项目"第三方登录(QQ空间+新浪微博)"是一个针对...
本压缩包提供了一套PHP实现的登录操作类,支持QQ、微信和新浪微博的OAuth 2.0授权协议,以及相应的回调处理。 首先,我们来看`SaeTClientV2Model.php`和`SaeTOAuthV2Model.php`这两个文件。它们通常与新浪(Sina)的...
在IT行业中,社交网络平台的登录接口整合是一个重要的议题,特别是在开发多平台应用程序时,它能让用户通过已有的社交账号快速注册和登录,提高用户体验。本文将深入探讨标题中的几个关键知识点:QQ、新浪微博、腾讯...
在ECSHOP中集成QQ登录,开发者需要申请QQ互联的应用ID和应用密钥,然后配置到系统中,实现用户点击QQ登录按钮后跳转至QQ授权页面,授权成功后返回商城并自动登录。 人人网登录:人人网曾是中国知名的社交网络平台,...
"ThirdpartyLogin(QQ微信新浪微博登录)"的主题聚焦于如何集成和实现使用QQ、微信和新浪微博这三大社交平台的账号进行登录的功能。以下是关于这个主题的详细知识点: 1. **OAuth协议**: 第三方登录的基础是OAuth协议...
新浪微博OAuth授权的Java实现是通过使用OAuth协议和相关的OAuth库来实现的。OAuth协议使用户不需要直接向第三方应用提供用户名及密码,且使一个账户在多个网站中使用成为可能。在Java平台上实现新浪微博OAuth授权...
"swift-qq微信新浪微博分享登录非友盟封装"这个项目提供了一种解决方案,它允许开发者在不依赖友盟(U-Union)的情况下,独立实现这三大社交平台的分享和登录功能。以下是对这个知识点的详细说明: 1. **Swift开发*...
在互联网应用中,为了提供用户方便快捷的登录体验,开发者常常会集成多种社交网络平台的登录接口,如QQ、新浪微博、腾讯微博、人人网、开心网和豆瓣等。这些社交平台提供了API(Application Programming Interface)...
该插件通过调用腾讯开放平台的API,实现账号授权和信息同步,使ECSHOP用户能够快速便捷地访问商城。 2. **新浪微博登录插件**:新浪微博是微博服务的领头羊,拥有大量的活跃用户。ECSHOP的新浪微博登录插件允许用户...