华为渠道的Unity接入demo
第一步Java代码实现总体上来说,华为渠道的接入是相对容易的,原理是他们的sdk封装比较完整,不像一些小的渠道商,连支持的jar包可能都要自己去找去下载.华为sdk的下载链接:https://developer.huawei.com/consumer/cn/doc/development/HMS-2-Library/hmssdk_huaweiid_sdkdownload.我们的目标是Unity开发
·
第一步Java代码实现
- 总体上来说,华为渠道的接入是相对容易的,原理是他们的sdk封装比较完整,不像一些小的渠道商,连支持的jar包可能都要自己去找去下载.华为sdk的下载链接:https://developer.huawei.com/consumer/cn/doc/development/HMS-2-Library/hmssdk_huaweiid_sdkdownload.我们的目标是Unity开发的项目接入,选择下载:HMS Agent套件HMSAgent_2.6.3.306.zip 和hmssdk-gradle-2.6.3.306.zip
- 用eclipse创建一个空的Android Application Project工程(hwsdkAgent),包名跟Unity项目的一样,右键工程->Build Path->Add External Archives添加第1步中gradle解压出的文件夹中的hmssdk-2.6.3.306.jar和Unity的classes.jar包这个Jar包一般在:Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\中
- 解压第1步中的HMSAgent,在eclipse中选中工程右键->Import->File System->Browse->选中解压出的HMSAgent文件夹
确定.
点击finish导入Agent的实现到工程中
- 添加MyApplication.java文件
-
package 包名与Unity工程的一致; import android.app.Application; import android.util.Log; import com.huawei.android.hms.agent.HMSAgent; public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); Log.d("huasdk", "huaweisdk AppApplication.onCreate called"); HMSAgent.init(this); } }
- 修改MainActivity.java
public class MainActivity extends UnityPlayerActivity
只保留onCreate函数,其它的删除,然后实现login和pay注意定义为static的
- 选中工程右键Export->Jar File->导出src的jar包
第二步是把Java实现引入Unity工程
-
新建一个huaweiSdkUnityDemo工程,在Assets里创建Plugins/Android文件夹,把hmssdk-gradle-2.6.3.306中的assets libs res拷贝到Android里,把上面第7步导出的Jar包放入libs里,
-
AndroidManifest.xml的配置,下载华为官网示例代码,并解压,把app\src\main中的AndroidManifest.xml拷贝到Android里,修改包名,以及些文件中'${}'的字段,设为自己项目的内容,要注意主Activity以及application的修改.
-
在Unity工程里定义按钮等
- 创建运行代码Main
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Main : MonoBehaviour {
public Button loginBtn;
public Button payBtn;
public Button viewBtn;
public Button pmsPayBtn;
public Text lbl;
void Awake()
{
Application.logMessageReceived += LogCallback;
#if UNITY_ANDROID && !UNITY_EDITOR
m_javaClass = new AndroidJavaClass("${你的游戏包名}.MainActivity");
#endif
lbl.text = "Awake\n";
}
void Start () {
loginBtn.onClick.AddListener(() =>
{
Debug.Log("Login Clicked login1");
m_javaClass.CallStatic("login", 1);
});
viewBtn.onClick.AddListener(() =>
{
Debug.Log("Signin Click");
m_javaClass.CallStatic("signin", true);
});
payBtn.onClick.AddListener(() =>
{
Debug.Log("Pay Clicked");
m_javaClass.CallStatic("pay", 1); //单位分
});
pmsPayBtn.onClick.AddListener(() =>
{
Debug.Log("pmsPay Clicked");
m_javaClass.CallStatic("pmsPay", "31");
});
}
void LogCallback(string condition, string stackTrace, LogType type)
{
lbl.text += condition+"\n";
}
private AndroidJavaClass m_javaClass;
}
- 打包发布,在Player Setting->Other Setting中填定包名 在public setting中设置你的项目的Keystore,然后build,成功后,放入你的华为手机测试
- 为了看log,可以安装Android Studio,在logcat中查看log
更多推荐
所有评论(0)