第三方QQ登录。
1.首先,上友盟下载第三方登录需要的SDK,友盟上有具体流程,
umeng_social_tool,umeng_social_net,umeng_social_api,SocialSDK_QQ_Simplify,这是我自己集成的四个jar包,将着四个jar包放进自己创建的工程里libs目录下,引用一下。
2. 我的清单文件需要的配置信息和权限:
<meta-data
android:name="UMENG_APPKEY"
android:value="" >//此处填写自己的key
</meta-data>
<activity
android:name="com.umeng.qq.tencent.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="tencent*********" />//自己的Appid
</intent-filter>
</activity>
<activity
android:name="com.umeng.qq.tencent.AssistActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
Mainactivity界面代码:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tx;
private ImageView iv;
private Button login;
private UMShareAPI mShareAPI;
private String name;
private String image_url;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
login.setOnClickListener(this);
}
private void initView() {
iv= (ImageView) findViewById(R.id.iv);
tx= (TextView) findViewById(R.id.tx);
login= (Button) findViewById(R.id.login);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.login:
mShareAPI = UMShareAPI.get(this);
SHARE_MEDIA platform = SHARE_MEDIA.QQ;
mShareAPI.doOauthVerify(this, platform, umAuthListener);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mShareAPI.onActivityResult(requestCode, resultCode, data);
}
private UMAuthListener umAuthListener = new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
mShareAPI.getPlatformInfo(MainActivity.this, platform,
new UMAuthListener() {
@Override
public void onError(SHARE_MEDIA arg0, int arg1, Throwable arg2) {
}
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onComplete(SHARE_MEDIA arg0, int arg1, Map<String, String> data) {
Set<String> set = data.keySet();
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
String ket = iterator.next();
if(ket.equals("profile_image_url")){
image_url=data.get(ket);
}if(ket.equals("screen_name")){
name=data.get(ket);
}
}
tx.setText(name);
//使用Glide加载自己的qq头像 //使用之前导入Glide3.80的包 Glide.with(MainActivity.this).load(image_url).into(iv);
}
@Override
public void onCancel(SHARE_MEDIA arg0, int arg1) {
}
});
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText(MainActivity.this, "登录取消", Toast.LENGTH_SHORT).show();
}
};
}
//创建一个Application
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
PlatformConfig.setQQZone("***","***");//此处填写Appid,key
UMShareAPI.get(this);
}
}