我试图通过android插件在Unity项目中进行蓝牙通信,一开始我想打开蓝牙。
java代码看起来像这样
void Start () {
textMEsh = GetComponent<TextMesh>();
var plugin = new AndroidJavaClass("com.example.unityplugin.PluginClass");
textMEsh.text = plugin.CallStatic<string>("testMessage");
textMEsh.text = plugin.CallStatic<string>("TurnOnBluetooth");
}
}
在Unity中就像
一样简单{{1}}
因此,在第一个方法&#34; testMessage&#34;之后,应用程序中显示的文本会发生变化我正在工作&#34;但没有任何反应,我不明白为什么。蓝牙未打开,我在日志中看到以下错误:
I / Unity:AndroidJavaException:java.lang.SecurityException:Need BLUETOOTH ADMIN权限:用户10069和当前进程都没有 android.permission.BLUETOOTH_ADMIN。
我应该如何在Unity中正确设置该权限?
答案 0 :(得分:2)
这是一个权限错误。您需要将蓝牙权限添加到Unity。
1 。转到<UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Apk
,将AndroidManifest.xml
文件复制到<ProjectName>Assets\Plugins\Android
。
如果<ProjectName>Assets\Plugins\Android
尚不存在,请创建它。 该文件夹的拼写区分大小写,必须拼写正确。
2 。从<ProjectName>Assets\Plugins\Android
打开复制的清单文件并添加清单。
为其添加以下权限:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
3 。保存AndroidManifest修改,构建并运行。
Unity现在将在最终版本中包含蓝牙权限。