300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 新浪微博开发之授权用户登录的实现

新浪微博开发之授权用户登录的实现

时间:2023-05-23 02:07:24

相关推荐

新浪微博开发之授权用户登录的实现

已授权用户再次启动应用时,我们要从数据库中读取已授权用户信息,让用户选择要登录的用户名实现登录。并从数据库中读取token和tokenSecret进行初始化accessToken,为以后获取微博数据做准备!

登录界面:

布局就不上代码了,比较简单,直接上代码:

package com.cloay.weibo.ui;import java.util.HashMap;import weibo4android.Weibo;import weibo4android.http.AccessToken;import com.cloay.weibo.R;import com.cloay.weibo.bean.UserInfo;import com.cloay.weibo.constants.OAuthConstant;import com.cloay.weibo.db.DataHelper;import com.cloay.weibo.service.MainService;import com.cloay.weibo.service.Task;import com.cloay.weibo.utils.AlertDlgUtil;import com.cloay.weibo.utils.CheckNetUtil;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;/*** 已授权用户登陆界面* @author Cloay* -2-20* 下午08:42:23*/public class LoginActivity extends Activity{private DataHelper dataHelper; //保存用户信息的数据库private ImageView userIcon; //用户头像private EditText userName; //用户昵称private Button login; //登录按钮private UserInfo userInfo ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.login);MainService.allActivity.add(this);System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);dataHelper = new DataHelper(this);userInfo = dataHelper.GetUserList(true).get(0); //从数据库读取已授权用户信息 这里需 注意1System.out.println( "------userInfo: "+ userInfo);//生成accessTokenAccessToken accessToken = new AccessToken(userInfo.getToken(), userInfo.getSecret());OAuthConstant.getInstance().setAccessToken(accessToken);userIcon = (ImageView) findViewById(R.id.user_icon);userIcon.setImageBitmap(userInfo.getDrawable()); //设置用户头像userName = (EditText) findViewById(R.id.user_Edit);userName.setText(userInfo.getName());//用户名login = (Button) findViewById(R.id.login);login.setOnClickListener(new OnClickListener() {//点击登录直接进入主页@Overridepublic void onClick(View v) {if(CheckNetUtil.checkNet(LoginActivity.this)){ //先检查网络是否可用Intent intent = new Intent(LoginActivity.this, MainActivity.class); //跳转到微博主页startActivity(intent);LoginActivity.this.finish();}else{AlertDlgUtil.alertDialogNetErr(LoginActivity.this);}}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {menu.add(Menu.FIRST, 0, 0, R.string.user_instead).setIcon(R.drawable.switchuser);menu.add(Menu.FIRST, 1, 1, R.string.exit_app).setIcon(R.drawable.menu_exit);return true;}@Overridepublic boolean onContextItemSelected(MenuItem item) {switch(item.getItemId()){case 0: //切换账号,使用新账号登录Intent intent = new Intent(LoginActivity.this, OauthActivity.class);startActivity(intent);break;case 1: //退出程序MainService.exitApp(LoginActivity.this);break;}return true;}}

注意1:这里我只取出了第一个已授权的user,大家可取出全部让用户选择一个进行登录。

通过上述代码我们就实现了使用已授权用户登录了,通过accessToken使用Weibo类中的方法来请求API进行我们想要的操作!

有问题请留言,大家一起学习交流!

说明:转载请注明出处!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。