QQ 第三方登录
来源:互联网 发布:淘宝标题优化技巧步骤 编辑:程序博客网 时间:2024/05/16 14:46
先加载jar包:
在Activity中注册信息:
需要添加的权限
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 网络状态 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- To auto-complete the email text field in the login form with the user's emails --><uses-permission android:name="android.permission.GET_ACCOUNTS" /><uses-permission android:name="android.permission.READ_PROFILE" /><uses-permission android:name="android.permission.READ_CONTACTS" />
</activity><activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="222222" /> </intent-filter></activity><activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>主类代码:
ublic class Geren extends Fragment { private Button bt; private TextView name ,dj,address; private Tencent mTencent; private String APP_ID = "222222"; private IUiListener loginListener; private String SCOPE = "all"; // private Tencent instance; private IUiListener userInfoListener; private String TAG; private UserInfo mUserInfo; private ImageView img; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = View.inflate(getContext(), R.layout.geren, null); bt = v.findViewById(R.id.qqq); name = v.findViewById(R.id.name); dj=v.findViewById(R.id.dj); img = v.findViewById(R.id.img); address= v.findViewById(R.id.address); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { initQqLogin(); mTencent.login(getActivity(), SCOPE, loginListener); } }); return v ; } private void initQqLogin() { mTencent = Tencent.createInstance(APP_ID, getActivity()); loginListener = new IUiListener() { @Override public void onComplete(Object o) { //登录成功后回调该方法 Toast.makeText(getActivity(), "登录成功", Toast.LENGTH_SHORT).show(); Log.e(TAG, "response:" + o); JSONObject obj = (JSONObject) o; try { String openID = obj.getString("openid"); String accessToken = obj.getString("access_token"); String expires = obj.getString("expires_in"); mTencent.setOpenId(openID); mTencent.setAccessToken(accessToken,expires); QQToken qqToken = mTencent.getQQToken(); mUserInfo = new UserInfo(getContext(),qqToken); mUserInfo.getUserInfo(new IUiListener() { @Override public void onComplete(Object response) { Log.e(TAG,"登录成功"+response.toString()); String json = response.toString(); Gson gson = new Gson(); Geren_Bean bean = gson.fromJson(json, Geren_Bean.class); ImageLoaderConfiguration cf = ImageLoaderConfiguration.createDefault(getActivity()) ; ImageLoader.getInstance().init(cf); ImageLoader.getInstance().displayImage(bean.getFigureurl(),img); name.setText(bean.getNickname()); dj.setText("36"); address.setText(bean.getCity()); } @Override public void onError(UiError uiError) { Log.e(TAG,"登录失败"+uiError.toString()); } @Override public void onCancel() { Log.e(TAG,"登录取消"); } }); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(UiError uiError) { //登录失败后回调该方法 Toast.makeText(getActivity() ,"登录失败", Toast.LENGTH_SHORT).show(); Log.e("LoginError:", uiError.toString()); } @Override public void onCancel() { //取消登录后回调该方法 Toast.makeText(getActivity(), "取消登录", Toast.LENGTH_SHORT).show(); } }; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == Constants.REQUEST_LOGIN) { if (resultCode == -1) {// Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);// Tencent.handleResultData(data, loginListener); Tencent.onActivityResultData(requestCode, resultCode, data, loginListener); Tencent.handleResultData(data, loginListener); UserInfo info = new UserInfo( getContext(), mTencent.getQQToken()); info.getUserInfo(userInfoListener); } } }}
阅读全文
0 0
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- 第三方qq登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- 第三方登录QQ
- QQ第三方登录
- qq第三方登录
- qq第三方登录
- 第三方QQ登录
- QQ第三方登录
- qq第三方登录
- QQ第三方登录
- QQ第三方登录
- okhttp简单请求数据,列表切换展示
- 第一个综合题布局
- 第一个综合题的MainActivity
- MVP+okhttp仿搜索
- 蓝牙应用
- QQ 第三方登录
- 第一个综合题的fragment
- NAT笔记
- netty编解码之jboss marshalling
- MVP
- 图片缓存
- 从RCNN,Fast-RCNN到Fater-RCNN的演化过程
- C程序之早起
- Android MVP封装模拟登陆