Google Daydream 智能手机作为控制器(unity-bluetooth)
Google Daydream smartphone as controller (unity-bluetooth)
是否可以将智能手机用作 Google Daydream 独立设备的控制器?
我们的计划是使用 Android 蓝牙插座打开智能手机和 Daydream 设备之间的蓝牙连接。然后我们只需以我们自己的格式传输字节并在另一端进行解释。
这都将在Unity中实现。
所以真正的问题是:
- 我们可以在 Daydream 中创建 运行 的 Unity Android 插件吗?
- 我们是否有足够的权限访问蓝牙 API 并以自定义方式使用它?
(我们也在评估 OculusGo,但我们有相同的未知数)
是的,您可以从 Unity 请求蓝牙权限。你可能还想使用蓝牙插件,除非你想处理稍微古怪的 java 调用。 OculusGo 和 Daydream 在内部仍然是 Android 设备,你只是不能把它们拿出来打电话。
令人惊讶的是,要使蓝牙正常工作,您还需要在 AndroidManifest.xml 中请求位置权限(这花了我一段时间)
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
我不确定 BLUETOOTH_ADMIN 是否真的需要。
我没有太多使用 OculusGo 的经验,但我想它会与 GearVR 非常相似,在 GearVR 上,堆栈受到严密保护,无法绕过它们的 API 与控制器配对,它非常锁定(你需要为您的设备生成 OCUSIG,否则应用程序将在启动时崩溃)。不确定这在多大程度上适用于 Go
如果你想桥接两个 android 设备,使用本地网络作为传输比蓝牙要容易得多 - 发送 UDP 数据包对我来说效果最好,唯一的条件是设备必须共享一个本地网络,但从一个人打开热点应该可以解决问题
是否可以将智能手机用作 Google Daydream 独立设备的控制器?
我们的计划是使用 Android 蓝牙插座打开智能手机和 Daydream 设备之间的蓝牙连接。然后我们只需以我们自己的格式传输字节并在另一端进行解释。 这都将在Unity中实现。
所以真正的问题是: - 我们可以在 Daydream 中创建 运行 的 Unity Android 插件吗? - 我们是否有足够的权限访问蓝牙 API 并以自定义方式使用它?
(我们也在评估 OculusGo,但我们有相同的未知数)
是的,您可以从 Unity 请求蓝牙权限。你可能还想使用蓝牙插件,除非你想处理稍微古怪的 java 调用。 OculusGo 和 Daydream 在内部仍然是 Android 设备,你只是不能把它们拿出来打电话。
令人惊讶的是,要使蓝牙正常工作,您还需要在 AndroidManifest.xml 中请求位置权限(这花了我一段时间)
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
我不确定 BLUETOOTH_ADMIN 是否真的需要。 我没有太多使用 OculusGo 的经验,但我想它会与 GearVR 非常相似,在 GearVR 上,堆栈受到严密保护,无法绕过它们的 API 与控制器配对,它非常锁定(你需要为您的设备生成 OCUSIG,否则应用程序将在启动时崩溃)。不确定这在多大程度上适用于 Go
如果你想桥接两个 android 设备,使用本地网络作为传输比蓝牙要容易得多 - 发送 UDP 数据包对我来说效果最好,唯一的条件是设备必须共享一个本地网络,但从一个人打开热点应该可以解决问题