华为渠道的Unity接入demo

第一步Java代码实现

  1.  总体上来说,华为渠道的接入是相对容易的,原理是他们的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
  2. 用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\中
  3. 解压第1步中的HMSAgent,在eclipse中选中工程右键->Import->File System->Browse->选中解压出的HMSAgent文件夹

    华为渠道的Unity接入demo_第1张图片

    确定.

    点击finish导入Agent的实现到工程中

  4. 添加MyApplication.java文件
  5. 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);
    	}
    }
    

     

  6. 修改MainActivity.java
    public class MainActivity extends UnityPlayerActivity

    只保留onCreate函数,其它的删除,然后实现login和pay注意定义为static的

  7. 选中工程右键Export->Jar File->导出src的jar包

    华为渠道的Unity接入demo_第2张图片

    第二步是把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工程里定义按钮等华为渠道的Unity接入demo_第3张图片

 

  • 创建运行代码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

 

你可能感兴趣的:(渠道接入,华为)