安卓和Unity通信集成Alipay

新建安卓项目 , 记下包名 

然后一直下一步    最后一步取消勾选那两个选项 


创建完成之后  点击左上角  切换为Project选项 


然后点击 APP文件夹里面的build.gradle     


把文件开头改成library    然后删除defaultConfig下的applicationId,去掉默认的dependencies下的

compile ‘com.android.support:appcompat-v7:25.0.0'的引入 最后格式为这样  


然后删除values文件夹下的style.xml文件

然后找到main文件夹下的AndroidManifest.xml

然后修改AndroidManifest文件中application下的theme为android自带的主题。

同时将

修改为

上面的是  包名.MainActivity

然后添加一行 

<meta-data android:name="unityplayer.UnityActivity" android:value="true" />

最后得到的是这样的 


然后引入Unity的Class包 

找到unity的classes.jar包 

UnityHub下的地址是:  

/Applications/Unity/Hub/Editor/2018.2.20f1/PlaybackEngines/AndroidPlayer/Variations/mono/Release/Classes/classes.jar

把他复制到安卓项目app文件夹下的lib文件夹下面  然后右键导入


导入之后 build.gradle文件里面就有他的引用了


然后 把alipay demo里面的类复制进来


然后删除里面的 PayDemoActivity 和 ExternalFragment 两个类   

然后把alipay SDK里面的那个aar文件也复制到libs文件夹里面 


并在app文件夹下的build.gradle文件里面引用 


然后把复制过来的其他每个类的包名都改成当前的包名 


在项目的build.gradle里面新加一段代码

flatDir {

    dirs'libs'


然后写方法给unity调用 


然后先选择build APK  再选Make Project 


编译完成之后  可以在对应的文件夹下找到对应的.aar文件 


然后把它复制到桌面 后缀名改为zip解压出来 

解压完成文件内容是这样的   


然后在unity项目里面引入 

文件夹的顺序是这样的   



把AndroidManifest.xml文件复制到Android文件夹下  然后把classes.jar文件复制到libs文件夹下  然后再找到alipay SDK里面带的那个.aar文件也复制到libs文件夹下面 

然后把整个res文件夹放到Android文件夹下

然后在unity里面新建一个脚本  新建一个按钮   

然后绑定按钮点击事件

  public classpayTest : MonoBehaviour {

privateAndroidJavaObject jo;

publicButton payBtn;

publicButton authBtn;

publicButton testBtn;

// Use this for initialization

    voidStart () {

        AndroidJavaClass jc =

new AndroidJavaClass("com.unity3d.player.UnityPlayer");

        jo = jc.GetStatic(

"currentActivity");

        payBtn.onClick.AddListener(payV2);

        authBtn.onClick.AddListener(authV2);

        testBtn.onClick.AddListener(test);


//jo.Call("payV2");

    }


public voidpayV2()

    {

        jo.Call(

"payV2");

    }

 //这个方法是给安卓调的  支付完成之后  会从安卓调用这个方法    public void showResult(stringresult)

    {


Text text = GameObject.Find("Text").GetComponent();

        text.text = result;

    }

然后打包成apk 点击按钮可以调起支付宝支付

支付完成之后  会自动调用安卓里面的方法

private Handler mHandler = new Handler() {

然后在安卓里面写一行

UnityPlayer.UnitySendMessage("Canvas","showResult","支付成功" + resultStatus); 



 支付完成之后  会从安卓里面调用Unity的showResult()方法


2019年03月08日17:34:18

你可能感兴趣的:(安卓和Unity通信集成Alipay)