Unity3D调用Android提供的接口
需求:Android提供相关的接口,android只提供接口,没有相关的界面,android接口打包以jar包的形式供Unity3D调用
1.编写相关的android接口
在studio中新建工程,并设置为library,编写相关的接口
ex:在Android中提供录音的接口
android中有一个service负责实现录音相关的工作,对外提供的接口是
Recorder.Java 中的两个接口 startRecordering(),stopRecordering()
编写完成之后,编译打包,生成androidplug.jar(名称随意)
public class Recorder{public Recorder(){}public static Recorder instance() {if(instance == null) {instance = new Recorder();}return instance;}public void startRecordering(Context context){Log.e(TAG, "-----------plugin start recordering--------------");RecorderService.startRecordering(context);}public void stopRecordering(Context context){Log.e(TAG, "-----------plugin end recordering--------------");RecorderService.stopRecordering(context);RecorderService.playerArm(context);}
}
2.新建unity3d的工程,在Assets目录下,新建目录,结构如下
Plugins
|_Android
目录结构和名称不能随意更改,将第一步生成的jar包,放在Android目录下。再用unity3d生成apk时,用对应的AndroidManifest.xml模板,我们需要在AndroidManifest.xml中加入对用的service和相应的权限
将 Unity3d安装目录中,到Editor\Data\PlaybackEngines\androidplayer 目录将AndroidManifest.xml copy到unity3d工程的Assets->Plugins->Android目录下,需要在这个AndroidManifest.xml中加入android中提供的录音的服务和录音的权限
<service android:name="com.xxx.androidpluginRecorderService"></service>
- 1
- 1
android:name 请使用android工程中全部限定名
和对应的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
- 1
- 2
- 1
- 2
AndroidManifest.xml中其他内容不需要修改
3.unity3d中调用接口
private AndroidJavaObject toastExample = null;
private AndroidJavaObject activityContext = null;void Start () {using(AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {activityContext = activityClass.GetStatic<AndroidJavaObject>("currentActivity");Debug.Log("-----------UnityPlayer");}//android中对应的类名,获得相应的类的实例using(AndroidJavaClass pluginClass = new AndroidJavaClass("com.xxx.androidplugin.Recorder")) {Debug.Log("-----------com.xxx.androidplugin.Recorde------");if(pluginClass != null) {Debug.Log("-----------com.xxx.androidplugin.Recorde init success------");toastExample = pluginClass.CallStatic<AndroidJavaObject>("instance");}}}
//通过实例就可以调用想用的方法,Call(“”,”“) 第一个参数是方法名,第二个参数是方法需要的参数
toastExample.Call (“startRecordering”,activityContext);
Unity3D调用Android提供的接口相关推荐
- android 引用非 android 工程,Unity3D调用android方法(非插件方式)
关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: android与Unity3D ...
- Unity3D调用android方法(非插件方式)
关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这 ...
- unity无法调用android,Unity3D调用android方法(非插件方式)
关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: 下面,我们来说说本博客的终端, ...
- unity3d调用android方法,Unity3D 调用Android原生方法2
原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅Unity3D引擎技术交流QQ群:[119706192]本文链接地址:Unity3D 调用Android原生方法2 记一次Unity通过An ...
- JAVA客户端调用SAP提供的接口(保姆级教程)
目前接触到SAP提供了两种不同的接口,对应也有两种不同的调用方式:1.Restful接口,支持直接通过post请求调用:2.WSDL接口,需要使用SoapUI测试并生成代码调用.大家在对接前要先确认接 ...
- Unity3d调用Android版so库
C源码封装Android版函数库 工具介绍 需要Android NDK工具包,下载地址为: https://developer.android.google.cn/ndk/downloads/inde ...
- Zebra 打印机 Android 端驱动接口开发及调用案例
文章目录 Zebra 打印机 Android 端驱动接口开发及调用 GitHub 源码 开发步骤 环境配置 Zebra SDK 资源下载 Android 开发环境搭建 新建Android项目 新建 A ...
- c 调用 android jar包,Unity调用AndroidStudio导出的Jar包
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 课程内容制作步骤介绍 创建AndroidStudio工程及Jar包导出 Unity中调用Jar包函数 制作步骤 大致步骤 ...
- Unity调用Android封装的声网sdk
文章目录 unity3调用Android 封装的声网SDK 1.环境版本 2.创建Android library 工程 3.unity3D 依赖包添加到工程libs下 4.UnityPlayerAct ...
最新文章
- CentOS7.4-btrfs管理及使用
- 基于ARP的网络扫描工具netdiscover常用命令集合大学霸IT达人
- Shiro的Base64和MD5加密的使用
- 在用户线程/主线程中推荐MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()函数
- 只能在栈上或者堆上创建对象
- 转jpg java源程序_将pdf文件转成图片并删除java源代码
- 1 QM配置-基本配置-维护工厂等级设置
- SQL对字符串进行排序
- 6 个快速学会 JavaScript 的秘诀!
- PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
- 图解DotNet框架之三:System.IO
- findContours函数参数详解
- 20172304 2017-2018-2 《程序设计与数据结构》第五周学习总结
- 将json文件格式转化成Excel表格形式
- 桂林理工大学 大学语文题库2021年春季学期
- “00后”消费数据分析,一文教你撩动“00后”购物欲
- 外卖行业现状分析_2020年中国外卖行业市场现状和发展趋势分析 外卖下沉趋势明显【组图】...
- 解决Referenced file contains errors
- htmlUnit的读取js渲染的页面
- 华医通显示连接服务器失败,华医通app怎么用 华医通app使用教程