当前位置: 首页 > news >正文

网站 稳定性中国建设部官网信息查询

网站 稳定性,中国建设部官网信息查询,wordpress 插件下载站,雅安做网站的公司编写本文是因为找了很多文章#xff0c;都比较片段#xff0c;不容易理解#xff0c;对于Android新手来说理解起来不友好。我这里写了一个针对比较小白的文章#xff0c;希望有所帮助。 Android端 首先还是先来写Android端#xff0c;我们新建一个Android空项目#xf…编写本文是因为找了很多文章都比较片段不容易理解对于Android新手来说理解起来不友好。我这里写了一个针对比较小白的文章希望有所帮助。 Android端 首先还是先来写Android端我们新建一个Android空项目并添加一个Module具体可以参考这篇《Unity 编写自己的aar库并通过AndroidJavaProxy调用访问和返回》我们给Module命名AndroidJFramework还是一个Library类型。 添加Unity Jar 因为要给Unity传送消息要使用到UnityPlayer类所以我们需要把Unity的Lib复制到安卓里我这里使用的2022.3.17路径是\Unitys\2022.3.17f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes 我们回到Android建立了Libs目录并把这个jar复制到安卓的项目里重命名为calsses_unity.jar 如下图 添加了新库要在build.gradle中添加引用 implementation files(src\\Libs\\classes_unity.jar)或者还可以在这个jar上点击右键进行添加 如下图 这样gradle文件中会自动添加如下图 最后改完gradle文件记得sync一下在菜单的File-Sync Project with Gradle Files 前期工作做完了然后我们开始编写Android脚本。 编写Android脚本 我们这里编写两个类 package com.lg.AndroidJFramework;public interface UnityBroadcasterInterface {void onReceive(String action,String msg);} 这个UnityBroadcasterInterface是一个interface因为Unity只能访问interface。 package com.lg.AndroidJFramework;import android.content.Context;import com.unity3d.player.UnityPlayer; import android.content.BroadcastReceiver; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log;public class UnityBroadcaster {public UnityBroadcasterInterface mInterface;//广播处理并回调Unity中OnReceive()方法private BroadcastReceiver broadcastReceiver new BroadcastReceiver() {Overridepublic void onReceive(Context context, Intent intent) {String action intent.getAction();Log.d(test, UnityBroadcastHelper: action: action);Bundle bundle intent.getExtras();if (bundle null) {bundle new Bundle();}int n bundle.size();int i 0;String parm ;for (String key : bundle.keySet()) {Object value bundle.get(key);String omsg String.format({ \%s\ : \%s\ , \%s\ : \%s\ },id,key,value,value.toString());parm omsg;i;if(i n)parm ,;}parm {\data\:[parm]};mInterface.onReceive(action,parm);}};//构造函数public UnityBroadcaster(UnityBroadcasterInterface callback){mInterface callback;Context context UnityPlayer.currentActivity;if (context null) {Log.e(test,找不到Unity);return;}IntentFilter ifs new IntentFilter();ifs.addAction(com.lg.updateandroid);context.registerReceiver(broadcastReceiver, ifs);}} 这个UnityBroadcaster类是负责接收广播并把广播通过mInterface.onReceive(action,parm)传递给Unity。 IntentFilter是广播的过滤改成你的自定义名称。接收到的广播消息我拼接成了json格式数据传递给Unity。 最后我们就可以进行编译了。 编译 我们点击Make Module运行完成后我们来到build目录就可以找到aar文件。我的是在 E:\AndroidProjects\AndroidJFrameWork\AndroidJFramework\build\outputs\aar 我们把这个文件复制到Unity项目Plugins\Android目录下。 如下图位置 这里我们要进行一个操作用Winrar把aar文件打开把Libs里的unity.jar删除掉 如果没有删除我们在打包的时候可能会出现如下报错 Duplicate class bitter.jnibridge.JNIBridge found in modules AndroidJFramework-debug-runtime 提示我们有重复的类JNIBridge . 到这里Android部分就完成了看起来一大堆操作其实还是挺简单的。 Unity端 主脚本 Unity里我们也是添加两个脚本。 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public class UnityBroadcaster : AndroidJavaProxy {[Serializable]public class RecData{public string id;public string value;}[Serializable]public class RecDataList{ public RecData[] data;}AndroidJavaObject javaObject;public UnityBroadcaster() : base(com.lg.AndroidJFramework.UnityBroadcasterInterface){javaObject new AndroidJavaObject(com.lg.AndroidJFramework.UnityBroadcaster, this);}public void onReceive(string action,string msg){RecDataList list new RecDataList();Debug.Log(Unity onReceive : action msg);list JsonUtility.FromJsonRecDataList(msg);for (int i 0; i list.data.Length; i){RecData data list.data[i];Debug.Log(data.id : data.value);}} } 我们建立主脚本UnityBroadcaster 继承自AndroidJavaProxy。构造函数我们这里的base后面就是包名interface的名称例如我的是com.lg.AndroidJFramework.UnityBroadcasterInterface。 javaObject是实例化这个Java对象需要用包名类名例如我的是com.lg.AndroidJFramework.UnityBroadcaster 这两个名称绝对不能错误请自定修改。 实例化脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using static UnityBroadcaster;public class BroadcasterLoad : MonoBehaviour {// Start is called before the first frame updatevoid Start(){new UnityBroadcaster();}} AndroidJavaProxy脚本没办法挂在对象上所以我们建立一个脚本直接new挂在主场景对象上。 然后直接进行Unity打包就可以了。 测试 我是从另外一个app上发送的广播不在本例arr安卓端你可以自行建立一个带窗体按钮的app点击按钮发送广播就可以了。 Intent intentnew Intent(); intent.setAction(com.lg.updateandroid);//广播的名字,过滤使用 intent.putExtra(msg1, haha1);//指定广播内容 intent.putExtra(msg2, hehe1);//指定广播内容 mContext.sendBroadcast(intent); //发送广播发送广播后我们可以看到输出的内容 参考 https://www.programmersought.com/article/51956081045/ https://vuopaja.com/tutorials/android-java-proxy
http://www.tj-hxxt.cn/news/216514.html

相关文章:

  • 扬州建网站网络营销的营销模式
  • 抚州市企业网站建设网站建设和app制作
  • 目前网站开发的主流语言是什么明星百度指数排行
  • 做暧嗳网站wordpress 首页 菜单
  • 微舍 微网站 怎么做博物馆设计网站推荐
  • 永州做网站tuantaogoudw做网站视频教程
  • 重庆网站开发哪家专业网站建设服务包括什么
  • 公司网站如何做水印jsp网站开发标准
  • 县级林业网站建设管理铁岭市网站建设
  • 怎样做办公用品销售网站产品vi设计
  • 做区域县城招聘网站网站推广排名优化多少钱
  • 搅拌机东莞网站建设技术支持做淘宝客没网站怎么做
  • 中国建设行业信息网站专业做婚庆的网站
  • 中国制药网网站开发技术德州市建设街小学网站首页
  • 国外做测评的网站大连承揽营销型网站公司
  • 怎么才能在百度搜到自己的网站家乡网站怎么做
  • 湖北省建设教育协会网站首页黄冈网站推广软件视频下载
  • 医生做学分在哪个网站在运营中seo是什么意思
  • 做网站4核是什么意思wordpress幻灯片的调用
  • 洛阳有做网站开发的吗服装定制官网
  • 上饶做网站的套模版做的网站好优化吗
  • 如何对新开网站做收录网站开发的项目总结
  • 平顶山河南网站建设公总号开发就是网站开发吗
  • 网站要懂代码互联网品牌有哪些
  • 建设五证在那个网站可以查长春网站建设网
  • 做全国家电维修网站到哪里做网站seo服务商
  • 轻量应用服务器做网站动画制作培训学院
  • 摄影网站源码html网页基本结构
  • 做qq群头像网站海丰县网站设计
  • 安平县外贸网站建设360公司官网首页