1. 程式人生 > >Android封裝jar包,把當前專案設定成module,封裝手機振動jar包給unity呼叫

Android封裝jar包,把當前專案設定成module,封裝手機振動jar包給unity呼叫

Android封裝jar包或者把當前專案設定成module操作步驟都一樣,此處以手機振動為例,封裝jar包給Unity平臺使用,具體如下:

Android部分:

1.建立unity要呼叫的手機振動的類:PhoneVibrate

package com.lin.phonevibrate;

import android.app.Service;
import android.content.Context;
import android.os.VibrationEffect;
import android.os.Vibrator;


public class PhoneVibrate {

    public static  void vibrator(Context context){
        Vibrator vibrator=(Vibrator)context.getSystemService(Service.VIBRATOR_SERVICE);
        vibrator.vibrate(200);
    }
    public static void vibrator(Context context,int milliseconds){
        Vibrator vibrator=(Vibrator)context.getSystemService(Service.VIBRATOR_SERVICE);
        vibrator.vibrate(milliseconds);
    }

}

2.將當前專案修改為module,在APP下的build.gradle中將

1)apply plugin: 'com.android.application'修改為:apply plugin: 'com.android.library'

2)defaultConfig下面有個applicationId刪除,案例如下:

將上面兩個紅色箭頭表示的地方修改後繼續執行下面的操作

3.build專案以後會自動生成app-debug.aar的檔案,具體在專案下找到你的app/build/outputs/aar/app-debug.aar,然後修改.aar為zip,解壓,找到classes.jar,名字可以隨便起,這就是最終提供給其他平臺的jar包

請注意:

1.如果沒有找到outputs下的aar資料夾,那麼你需要創新build專案,點選build/make module 'app',就可以看見新生成的aar資料夾

2.如果需要許可權,記得要把AndroidManifest.xml檔案提供給unity平臺

Unity部分:

1.新建資料夾plugins,Android,bin,res四個資料夾,bin下存放新生成的jar包,res下存放AndroidManifest.xml檔案

2.呼叫:注意,上下文物件指的是Activity,必須是AndroidJavaObject context = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); //獲得Context

不要修改他的包名,這是unity的包名,不是自己的

需要特別注意的是:振動vibrate方法傳值的時候需要判斷版本號(Api 26),如果你傳的是VibrationEffect,那麼會出現手機不振動的情況,原因是VibrationEffect是後來出現的,直接傳值是老版本的做法。

就是這麼簡單,歡迎交流