新浪微博开发之保存授权信息
来源:互联网 发布:linux 命令行浏览器 编辑:程序博客网 时间:2024/06/05 22:33
为了方便用户的下次使用我们需要将授权信息进行保存,这里我使用了android系统自带的SQLite来保存!关于SQLite的用法可参见我的这篇文章:android之SQLite在下载管理中的使用。
为了程序的流畅型我们使用service后台进行保存用户授权信息:
User user = (User) task.getTaskParam().get("user");UserInfo userInfo = new UserInfo();userInfo.setId(""+user.getId()); //获取用户IDuserInfo.setToken(OAuthConstant.getInstance().getToken()); //获取tokenuserInfo.setSecret(OAuthConstant.getInstance().getTokenSecret()); //获取TokenSecretuserInfo.setName(user.getName()); //用户名userInfo.setDrawable(getBitmap(user.getProfileImageUrl())); //用户头像url地址,用来登录时使用DataHelper dataHelper = new DataHelper(MainService.this);dataHelper.SaveUserInfo(userInfo); //保存用户信息其中DataHelper类代码如下:
package com.cloay.weibo.db;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.util.ArrayList;import java.util.List;import com.cloay.weibo.bean.UserInfo;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.graphics.Bitmap;import android.graphics.BitmapFactory;/** * 用来保存用户授权相关信息 * @author Cloay * 2012-2-29 * 下午08:47:08 */public class DataHelper { /** * 数据库名称 */ private static String DB_NAME = "cloay.db"; /** * 数据库版本号 */ private static int DB_VERSION = 1; private SqliteHelper dbHelper; public DataHelper(Context context){ dbHelper=new SqliteHelper(context,DB_NAME, null, DB_VERSION); } /** * 关闭数据库 */ public void closeDB() { dbHelper.close(); } /** * 获取user_info表中的UserID、Access Token、Access Secret的记录 * @param isAll * @return */ public List<UserInfo> GetUserList(Boolean isAll){//isAll为true时获取全部消息,否则获取id,token,secret List<UserInfo> userList = new ArrayList<UserInfo>(); SQLiteDatabase database = dbHelper.getWritableDatabase(); String sql = "select user_id,token,secret,name,drawable from user_info"; Cursor cursor = database.rawQuery(sql, new String[] {}); while (cursor.moveToNext()) { UserInfo info = new UserInfo(); info.setId(cursor.getString(0)); info.setToken(cursor.getString(1)); info.setSecret(cursor.getString(2)); if(isAll){ info.setName(cursor.getString(3)); ByteArrayInputStream stream = new ByteArrayInputStream(cursor.getBlob(4)); Bitmap icon = BitmapFactory.decodeStream(stream); info.setDrawable(icon); } userList.add(info); } cursor.close(); closeDB(); return userList; } /** * 判断users表中的是否包含某个UserID的记录 * @param UserId * @return */ public boolean HaveUserInfo(String UserId){ boolean isHave = false; SQLiteDatabase database = dbHelper.getReadableDatabase(); String sql = "select count(*) from user_info where user_id=?"; Cursor cursor = database.rawQuery(sql, new String[] { UserId }); isHave = cursor.moveToFirst(); cursor.close(); closeDB(); return isHave; } /** * 添加users表的记录 * @param user */ public void SaveUserInfo(UserInfo user){ SQLiteDatabase database = dbHelper.getWritableDatabase(); String sql = "insert into user_info(id ,user_id, token, secret, name, drawable) values (?,?,?,?,?,?)"; ByteArrayOutputStream os = new ByteArrayOutputStream(); // 将Bitmap压缩成PNG编码,质量为100%存储 user.getDrawable().compress(Bitmap.CompressFormat.PNG, 100, os); //id我默认都为1了因为我只用了一个账号,大家保存的时候可设置成其他的 Object[] bindArgs = {"1", user.getId(), user.getToken(), user.getSecret(), user.getName(), os.toByteArray()}; database.execSQL(sql, bindArgs); closeDB(); } /** * 删除users表的记录 * @param UserId */ public void DelUserInfo(String UserId){ SQLiteDatabase database = dbHelper.getReadableDatabase(); database.delete("user_info", "user_id=?", new String[] { UserId }); closeDB(); }}
好了关于授权及授权信息的内容到此就全部完成了!接下来就是主页的搭建及微博的获取了!
有问题请留言,大家一起交流学习!
说明:转载请注明出处!
- 新浪微博开发之保存授权信息
- 新浪微博SDK2.4授权信息保存
- 新浪微博开发之授权的实现(一)
- 新浪微博开发之授权的实现(二)
- 新浪微博开发之授权用户登录的实现
- (droid分享)新浪微博开发系列【二】之授权
- 新浪微博开发OAuth授权注意事项
- ios-新浪微博开发-16(授权)
- ios-新浪微博开发-18-(授权存储账号信息)用归档实现
- Android新浪微博之登陆授权
- 新浪微博授权
- 新浪微博授权
- 新浪微博客户端开发之授权登录+获取微博列表
- 新浪微博API开发简介之PHP基础篇-用户授权
- 新浪微博API开发简介之PHP基础篇-用户授权
- 新浪微博API开发简介之PHP基础篇-用户授权
- 新浪微博API开发简介之PHP基础篇-用户授权
- 新浪微博API开发简介之PHP基础篇-用户授权
- 增加将log信息存入/data/中的功能
- 内核模块学习--编译自己的第一个内核模块hello_module
- 异步操作之异步通知编程
- jQuery插件autoComplete介绍(10级学员 张帅鹏总结)
- Linux 进程间通信之消息队列的几点注意事项
- 新浪微博开发之保存授权信息
- 机器学习10大经典算法
- 将RSS转成json
- VS2010配置DirectShow(Win7系统)
- 数据库框架设计与实现(一)
- MPC8349E-mITXE的U-Boot汇编start.S分析笔记(转) .
- Hibernate blob No Dialect mapping for JDBC type: -4
- Yii验证码实现
- usb设备的命名规则