首先还是Unity大知识点列表
然后开始边做边记录吧!
申请QQ互联开发者身份
链接:https://connect.qq.com/index.html
需要实名认证,提交手持身份证照片,申请后等待审核
大约三天左右,等审核通过后
进入应用管理界面,在创建移动应用
填写应用类型,名称简介,创建应用
填写Android或IOS开发信息,选择Android开发信息
设置包名与签名,签名可通过腾讯提供的签名获取工具获取
安装包名称可以自定义,格式位com.公司或开发者字母名称.产品名称 例如com.nekotail.catplayingchess
安装包签名步骤如下
新建空的Unity工程
设置PlayerSetting,设置公司名与产品名以及包名,打包成apk,安装到安卓机上
点击 签名获取工具,扫二维码下载AppManager.apk,安装后运行
找到后查看到我们的空apk的包名和对应的签名,将签名填写到Android开发信息中
然后上传自定义logo图片,分辨率要按要求设置,然后提交申请,等待1-2天的审核时间
审核成功后可以上QQ互联官网自己的管理中心看到我们审核成功的应用
这个时候就有了应用的APP ID与APP Key。
目前认证过程结束。
下载QQ登录SDK
新开工程,使用Unity版本2017.4.1f1。
下载地址:http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD
下载android版本SDK,得到一个.7z压缩包,解压后目录
安装Eclipse IDE
省略
导出Jar包
创建Eclipse的安卓应用工程
包名要与Unity工程包名以及QQ互联开放平台中应用设置的包名一致
持续Next,Finish
将Unity安装目录里的classes.jar与qq登录sdk中的jar包放入新开的安卓工程目录的libs目录下
放入libs目录下
然后分别右键两个jar包 BuildPath - Add to build path
更改MainActivity.java
package com.nekotail.catplayingchess;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;
import com.unity3d.player.UnityPlayerActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends UnityPlayerActivity {
private Tencent mTencent;
private IUiListener loginListener = new BaseUiListener();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// mTencent = Tencent.createInstance("101504166", this.getApplicationContext());
}
//QQ登录接口
public void qqLogin() {
//第一个参数为qq互联开放平台的应用APPID,此处用101012345代替
mTencent = Tencent.createInstance("101012345", this.getApplicationContext());
if (!mTencent.isSessionValid()) {
mTencent.login(this, "all", loginListener);
}
}
//QQ注销接口
public void qqLogout(){
mTencent.logout(this);
}
//实现回掉IUiListener
private class BaseUiListener implements IUiListener{
@Override
public void onCancel() {
// TODO Auto-generated method stub
}
@Override
public void onComplete(Object arg0) {
// TODO Auto-generated method stub
}
@Override
public void onError(UiError arg0) {
// TODO Auto-generated method stub
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mTencent.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
}
配置AndroidMinifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nekotail.catplayingchess"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="25" />
<uses-permission android:name="com.permission.INTERNET"/>
<uses-permission android:name="com.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- QQ登录配置 start -->
<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="tencent101012345"/> <!-- 此处填写tencentAPPID -->
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="behind"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- QQ登录配置end -->
</application>
</manifest>
右键工程根目录 -Export - JAR file
选中src ,res和llibs目录,去除classes.jar 然后Finish
OK
在设置的路径找到jar包
Unity的配置
这里警告,继续使用原工程,使用新工程将导致包签名更改,将会出现只能QQ互联的QQ号可能登录,其他QQ号无法授权登录成功。
如果原工程丢失,可以修改包签名
创建Plugins/Android/libs目录,将创建好的jar包以及qq登录sdk的jar包放进目录里
将安卓工程里的res目录复制到Plugins/Android目录下
将安卓工程里的AndroidMinifest.xml复制到Plugins/Android目录下
设置导入平台设置
新建场景,创建UGUI Button,新建脚本QQLogin.cs挂载在button对象上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class QQLogin : MonoBehaviour {
private Button loginButton;
private void Awake()
{
loginButton = GetComponent<Button>();
loginButton.onClick.AddListener(() => { OnLoginBtnClick(); });
}
private void OnLoginBtnClick()
{
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
activity.Call("qqLogin");
}
}
设置PlayerSetting
打包成apk,安装到真机上进行测试