以Android原生震动为例 --->
Unity 与Android 交互需要两个文件 :
1、classer.jar

2、UnityPlayerActivity.java

二、打开AndroidStudio开始创建工程
1、
2、
3、引入jar包 以及 java文件


4.UnityPlayerActivity.java里引入两个包
import com.unity3d.player.IUnityPlayerLifecycleEvents;
import com.unity3d.player.UnityPlayer;如果无法引入,说明jar包没有导入完成,即上上图的add to Library

5、在MainActivity.java内书写震动代码

6、配置AndroidManifest.xml 文件

7、gradle配置

8、build出aar

9、解压


10、导入Unity

11、写个Button来触发调用
12、C# 代码

13、打包设置

14、打包测试运行结果(弹窗震动均成功)

15、关于另外两种打包方式,如果不加混淆,会导致找不到方法的错误,如下:
AndroidPlayer(ADB@127.0.0.1:34999) AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='CallShake' signature='([JI)V' in class Ljava.lang.Object;
java.lang.NoSuchMethodError: no non-static method with name='CallShake' signature='([JI)V' in class Ljava.lang.Object;
16、加混淆打包

文件内容: -keep class com.unity.unitycallandroid.**{*;}
防止这个jar包被混淆
2020 /12/17 更新
最近发现了个比较好的方式,可以不用更改Unity里面AndroidManifest 里面的包名,直接添加需要的权限就行了。
其他方面处理起来和上面方法一样。注意:因为过去好久了 ,我改了android包名 com.unity.vibrate。
推荐使用这种方式:(过多的jar包处理起来方便)
代码截图如下

Unity调用

AndroidMainfest 如下:
