LiangGaoUser / AndroidEbook

0 stars 0 forks source link

将QQ登录第三方集成到系统中 #17

Open LiangGaoUser opened 4 years ago

LiangGaoUser commented 4 years ago

1.在Activity中进行唤醒登录 2.在Fragment中进行唤醒登录 参考链接1 参考链接2 如果在Fragment中使用,需要更改QQLoginManager中QQLoginManger初始化方法, 这是原来的

 public QQLoginManager(String app_id, Object o) {
        this.app_id = app_id;
        this.mContext = (Context) o;
        this.mActivity = (Activity) o;
        this.qqLoginListener = (QQLoginListener) o;
        initData();
    }

这是新加的

public QQLoginManager(String app_id, Context context, Object o){//表示是通过Fragment
        this.app_id=app_id;
        this.mfragment=(Fragment) o;
        this.mContext=context;
        this.qqLoginListener=(QQLoginListener)o;
        initData();
    }

这样就能够区别是在Activity还是在Fragment中

LiangGaoUser commented 4 years ago

遇到的问题: 1.有时会出现卡顿无法加载出所需要的图片,经过分析是用来下载网络图片的Util中,conn.connect()出现了问题,原因是没有设置conn.setConnectTimeout(200);和conn.setReadTimeout(200); 完整的Util代码如下

package com.lianggao.whut.androidebook.Utils;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import static android.content.ContentValues.TAG;

public class Util {

    /**
     * 根据一个网络连接(String)获取bitmap图像
     *
     * @param imageUri
     * @return
     * @throws MalformedURLException
     */
    public static Bitmap getbitmap(String imageUri) {
        Log.v(TAG, "getbitmap:" + imageUri);
        // 显示网络上的图片
        Bitmap bitmap = null;
        try {
            URL myFileUrl = new URL(imageUri);
            HttpURLConnection conn = (HttpURLConnection) myFileUrl
                    .openConnection();
            conn.setDoInput(true);
            conn.setConnectTimeout(200);
            conn.setReadTimeout(200);
            conn.connect();
            InputStream is = conn.getInputStream();
            bitmap = BitmapFactory.decodeStream(is);
            is.close();

            Log.v(TAG, "image download finished." + imageUri);
        } catch (OutOfMemoryError e) {
            e.printStackTrace();
            bitmap = null;
        } catch (IOException e) {
            e.printStackTrace();
            Log.v(TAG, "getbitmap bmp fail---");
            bitmap = null;
        }
        return bitmap;
    }
}

2.在自己新手机上安装应用时,无报错ClassNotFoundException: Didn't find class "org.apache.http.conn.scheme.SchemeRegistry",无法进入该Fragment页面。经过查找是高版本的安卓Android 6.0 版移除了对 Apache HTTP 客户端的支持。需要在配置文件中加入以下内容

参考链接

3.新手机上调用QQ进行登录时,只能出现昵称,无法显示图片,报错Cleartext HTTP traffic to xxx not permitted 参考链接