1.aar包制作
下面通过手机振动为例:PhoneVibrate
package com.gamestar.nativesoundpool;
import android.Manifest;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.util.Log;
/**
* Created by jiamilin on 2018/9/10.
*/
public class PhoneVibrate {
/**
* 申请振动权限
* @param activity
*/
public static boolean requestVibratePermission(Activity activity){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.VIBRATE},
1001);
Log.e("phonevibrate","权限未申请");
return false;
}else {
Log.e("phonevibrate","权限已经申请");
return true;
}
}
return true;
}
public static void vibrator(Context context){
Vibrator vibrator=(Vibrator)context.getSystemService(Service.VIBRATOR_SERVICE);
if (Build.VERSION.SDK_INT>25){
/**
* 创建一次性振动
*
* @param milliseconds 震动时长(ms)
* @param amplitude 振动强度。这必须是1到255之间的值,或者DEFAULT_AMPLITUDE
*/
VibrationEffect effect = VibrationEffect.createOneShot(20,1);
vibrator.vibrate(effect);
}else {
vibrator.vibrate(20);
}
}
public static void vibrator(Context context, int milliseconds){
Vibrator vibrator=(Vibrator)context.getSystemService(Service.VIBRATOR_SERVICE);
if (Build.VERSION.SDK_INT>25){
/**
* 创建一次性振动
*
* @param milliseconds 震动时长(ms)
* @param amplitude 振动强度。这必须是1到255之间的值,或者DEFAULT_AMPLITUDE
*/
VibrationEffect effect = VibrationEffect.createOneShot(milliseconds,1);
vibrator.vibrate(effect);
}else {
vibrator.vibrate(milliseconds);
}
}
public static void vibrator(Context context, int milliseconds, int amplitude){
Vibrator vibrator=(Vibrator)context.getSystemService(Service.VIBRATOR_SERVICE);
if (Build.VERSION.SDK_INT>25){
/**
* 创建一次性振动
*
* @param milliseconds 震动时长(ms)
* @param amplitude 振动强度。这必须是1到255之间的值,或者DEFAULT_AMPLITUDE
*/
VibrationEffect effect =null;
if (amplitude>0 && amplitude <256){
effect = VibrationEffect.createOneShot(milliseconds,amplitude);
}else {
effect = VibrationEffect.createOneShot(milliseconds,1);
}
vibrator.vibrate(effect);
}else {
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
2.aar包导入
unity调用Android的sdk的两种办法:1.AAR包,2.jar包+assets资源包+AndroidMainfest,但是目前已经不提倡后者,多说采用aar,aar中包括了jar包+assets资源包+AndroidMainfest等所有的资源,我们只要将aar放到unity中就可以,具体存放位置Plugins/Android/****(自定义的文件夹名称,只要能代表你aar的功能即可)/**.aar