前提:
项目添加手机震动功能,未使用Unity自带震动方法Handheld.Vibrate(),使用第三方插件实现,手动配置AndroidManifest文件添加Android震动权限:
<uses-permission android:name="android.permission.VIBRATE" />
问题:
Unity打包Android后,震动功能无效,报错没有震动权限:
AndroidJavaException: java.lang.SecurityException: Requires VIBRATE permission
原因:
不使用Unity自带震动方法Handheld.Vibrate(),Unity识别不到项目内使用了震动权限,打包时会自动删除震动权限,即使在AndroidManifest中手动配置了,还是会删除(离个大谱);
即使不使用Unity自带震动功能,也得调用一下Handheld.Vibrate()方法,这样才能保证打包时Unity会添加震动权限(也不需要在AndroidManifest中手动配置了)
解决:
增加一个方法来调用Handheld.Vibrate()
//保留接口(用于设置Android手机震动权限),不可删除,不可调用
public static void Test()
{
Handheld.Vibrate();
}