版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21004057/article/details/78070214
大家好,今天给大家带来的是日常开发之QQ登录详细教程。我们先来看看效果图。
那么我们该如何去做呢?
第一步:点击前往QQ互联。
进入后点击头像进入编辑个人信息,提交审核。大概1到2天能完成审核。需要提交身份证正面拍照图片。提交大小有限制可以用Photoshop软件修改下图片大小。
第二步:点击此处下载SDK。
打开此SDK,里面还有一个工具,名叫获取签名.apk。把该软件安装到手机上。安装后显示效果如下。
我们可以看到每个应用下面有自己的安装包名和签名。
第三步:创建一个app项目。
然后打包安装到手机上或者模拟器上。然后再在获取签名.apk里查看该应用的安装包名和签名。
第四步:回到QQ互联,点击创建移动应用。把安装包名和签名填写到下面的信息。
第五步:导入SDK中的jar包。修改AndroidManifest.xml。
可以直接把SDK的如下2个jar包拖到lib下,然后再在build.gradle中添加进去。
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile files('libs/mta-sdk-1.6.2.jar')
compile files('libs/open_sdk_r5793_lite.jar')
}
添加2个网络访问权限和2个activity,分别是AuthActivity和AssistActivity。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.chenlei.tencentqqlogin">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<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="101431358" />
</intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"
/>
</application>
</manifest>
第六步:放置一个QQ登录按钮。
放置该按钮后,点击按钮会跳转到QQ登录界面。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/btn_qq_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="QQ登录"
android:layout_gravity="center">
</Button>
</LinearLayout>
</RelativeLayout>
效果图如下:
接下来,我们可以实例化该登录按钮。并为其增加点击事件。详细代码如下:
public class MainActivity extends Activity {
private Button btn_qq_login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
final Tencent tencent = Tencent.createInstance("101431358",getApplicationContext());
btn_qq_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!tencent.isSessionValid()){
//login
tencent.login(MainActivity.this, "get_simple_userinfo", new IUiListener() {
@Override
public void onComplete(Object o) {
//在这里可以获取登录账户的个人信息
}
@Override
public void onError(UiError uiError) {
}
@Override
public void onCancel() {
}
});
}
}
});
}
private void initView(){
btn_qq_login = (Button) findViewById(R.id.btn_qq_login);
}
}
我们可以看到,首先通过Tencent.createInstance()方法得到Tencent对象,第一个参数为你QQ互联创建应用后申请获取到的appid。然后通过Tencent对象调用login方法即可完成登录。login()方法传递的三个参数类型分别为Context,String,和IUIListener对象。第二个String为增量权限scope字符串。这里用get_simple_userinfo为获取用户QQ基本信息。另外还可以填写all等,all即代表所有权限。
接口的回调方法里包含的三个方法分别为登录成功,登录失败,取消登录。在三个回调方法中我们可以实现我们要做的事情。比如登录成功后在onComplete方法中获取个人的信息,则可以通过回调的object获取得到。
当然啦,在实际应用中要结合后台数据库设计来实现登录成功后的逻辑代码。本文到这来就结束啦!有什么问题可以发送至我的邮箱!谢谢各位的阅读。