需求: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提供的接口相关推荐

  1. android 引用非 android 工程,Unity3D调用android方法(非插件方式)

    关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: android与Unity3D ...

  2. Unity3D调用android方法(非插件方式)

    关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这 ...

  3. unity无法调用android,Unity3D调用android方法(非插件方式)

    关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: 下面,我们来说说本博客的终端, ...

  4. unity3d调用android方法,Unity3D 调用Android原生方法2

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅Unity3D引擎技术交流QQ群:[119706192]本文链接地址:Unity3D 调用Android原生方法2 记一次Unity通过An ...

  5. JAVA客户端调用SAP提供的接口(保姆级教程)

    目前接触到SAP提供了两种不同的接口,对应也有两种不同的调用方式:1.Restful接口,支持直接通过post请求调用:2.WSDL接口,需要使用SoapUI测试并生成代码调用.大家在对接前要先确认接 ...

  6. Unity3d调用Android版so库

    C源码封装Android版函数库 工具介绍 需要Android NDK工具包,下载地址为: https://developer.android.google.cn/ndk/downloads/inde ...

  7. Zebra 打印机 Android 端驱动接口开发及调用案例

    文章目录 Zebra 打印机 Android 端驱动接口开发及调用 GitHub 源码 开发步骤 环境配置 Zebra SDK 资源下载 Android 开发环境搭建 新建Android项目 新建 A ...

  8. c 调用 android jar包,Unity调用AndroidStudio导出的Jar包

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 课程内容制作步骤介绍 创建AndroidStudio工程及Jar包导出 Unity中调用Jar包函数 制作步骤 大致步骤 ...

  9. Unity调用Android封装的声网sdk

    文章目录 unity3调用Android 封装的声网SDK 1.环境版本 2.创建Android library 工程 3.unity3D 依赖包添加到工程libs下 4.UnityPlayerAct ...

最新文章

  1. CentOS7.4-btrfs管理及使用
  2. 基于ARP的网络扫描工具netdiscover常用命令集合大学霸IT达人
  3. Shiro的Base64和MD5加密的使用
  4. 在用户线程/主线程中推荐MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()函数
  5. 只能在栈上或者堆上创建对象
  6. 转jpg java源程序_将pdf文件转成图片并删除java源代码
  7. 1 QM配置-基本配置-维护工厂等级设置
  8. SQL对字符串进行排序
  9. 6 个快速学会 JavaScript 的秘诀!
  10. PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
  11. 图解DotNet框架之三:System.IO
  12. findContours函数参数详解
  13. 20172304 2017-2018-2 《程序设计与数据结构》第五周学习总结
  14. 将json文件格式转化成Excel表格形式
  15. 桂林理工大学 大学语文题库2021年春季学期
  16. “00后”消费数据分析,一文教你撩动“00后”购物欲
  17. 外卖行业现状分析_2020年中国外卖行业市场现状和发展趋势分析 外卖下沉趋势明显【组图】...
  18. 解决Referenced file contains errors
  19. htmlUnit的读取js渲染的页面
  20. 华医通显示连接服务器失败,华医通app怎么用 华医通app使用教程

热门文章

  1. Linux的bind服务
  2. 2018年算法工程师秋招经验贴(微软、华为、网易游戏、阿里offer)
  3. gateway使用教程
  4. SPH算法的理论和实践(2)
  5. 波长传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. 消除Mac Word文档生成目录中的灰色底纹
  7. 概率论与数理统计知识
  8. 频谱细化matlab程序,分享FFT频谱细化程序(处理单频点信号)
  9. DateUtil时间处理插件
  10. STL中Vector的内存分配机制