# 开发问题\_SDK

## **通用问题**

### **1. sdk如何下载？**

开发者可在 [雷鸟开放平台](https://open.rayneo.cn/#/docs/x2)中直接下载，具体路径如图：

![](/files/3d5875d9f660b97b5571b9025aa4f4d865dd076d)

### **2. 如何启用开发者模式（adb安装权限）**

X2无须开启开发者模式，但**ADB安装apk需要开启权限**，其具体命令如下：

```
adb shell settings put global mercury_install_allowed 1
```

请确保在操作过程中，设备与电脑之间连接稳定。

如果在连接过程中遇到频繁断开连接的问题，可能的原因及解决方案如下：

* USB端口的供电能力过强，建议更换尝试；
* 存在其他进程占用或干扰ADB连接，导致其不稳定。检查并关闭可能影响ADB的进程。

### **3. 如何授予应用程序眼镜权限？**

通过ADB命令行工具手动授予应用程序眼镜权限：

安装位于"C:\Users\Downloads"目录下的"x2enwords-0515-app-debug.apk"应用程序包，命令如下：

```
adb install C:\Users\Downloads\x2enwords-0515-app-debug.apk
```

为包名为"com.fantastytech.x2enwords"的应用程序开启相机权限，命令如下：

```
adb shell pm grant com.fantastytech.x2enwords android.permission.CAMERA
```

为包名为"com.fantastytech.x2enwords"的应用程序开启对SD卡的写入权限，命令如下：

```
adb shell pm grant com.fantastytech.x2enwords android.permission.WRITE_EXTERNAL_STORAGE
```

### **4. 程序主activity背景如何设置？**

应将其背景设置为黑色，即可实现在眼镜上呈现出透明的效果效果，参考设计规范

### **5. 摄像头fov与视区范围fov不一致怎么办？**

【问题描述】如下图所示，黄色框内眼镜屏幕穿透过去看到的内容；粉色框为摄像机拍摄并绘制到app上的内容。由于二者fov不一致，导致取景框获取的内容存在差异，从而可能对拍照识图等功能产生影响。

![](/files/1fa1a5e30434f7fdd4eb8a36cfda12224fd92c06)

【处理方式】

在unity中，将摄像头的水平fov参数调整为20.11即可，如图所示：

![](/files/8bee0ce9301bf4311e056821eb225426149bead7)

在Android中，将坐标进行转换即可实现。

### **6. X2 3D渲染支持哪些格式？**

X2 支持 3D 渲染的格式包括 OBJ 和 FBX，推荐使用FBX格式。

### **7. 能否支持ARkit、ARcore？**

目前还不支持基于arkit及arcore的应用开发，但可以接入vuforia，mediapipe等软件应用进行开发。

### **8. 为什么每次打开还是要求连戒指？**

【背景】若不接入sdk进行配置，系统默认apk为手机apk，为适配其交互（触屏交互），会强制连接戒指

【解决方案】接入sdk，并参考sdk文档配置AndroidManifest.xml文件， [**位置：快速开始—》配置设置—》其他配置**](https://open.rayneo.cn/#/docs/x2?name=)

![](/files/d9595f39de86bea8f724d7d71faf135000a2d677)

### **9. 触控板的交互设计可以通过SDK修改吗？**

【举例】比如把左划等操作改为拍照等功能？

用户可以在自己的应用程序中修改右触控板的部分操作，但无法同步修改系统层级的交互设计。

此外，长按操作已被固定为返回dock栏功能，因此无法修改。

具体可参考 [AR眼镜的设计规范](/rayneo-devdoc/x-xi-lie/she-ji-gui-fan.md)

### **10. 实体按键是否支持自定义？**

X2 眼镜上仅有一个实体开机键，配备两个触控板，开发者可定义右镜腿触控板的部分操作，以及戒指的部分操作。具体参考设计规范及sdk文档，戒指操作参考IPCSDK for Android

### **11. 界面是否支持透明度调整？**

X2 眼镜采用 OST 方案，ui界面中黑色部分就是透明显示的，具体可参考设计规范

### **12. 如何获取camera画面？**

* 若不使用6dof功能，可直接通过原生接口获取
* Android平台可直接使用Android Camera2的API，具体可以参考文档请见 [简书](https://www.jianshu.com/p/c1955529dd4c)；
* Unity平台可直接使用WebCamTexture获取相机数据。
* 若使用6dof功能，可通过ShareCamera Api获取

国内版os也可以通过intent调起系统相机拍照后获取图片（该方式获取的图片的分辨率更高）

### **13. 是否集成手势交互？**

目前暂无手势交互能力，对应功能功耗较高，建议暂不考虑

### **14. 是否有专用的语音输入法？**

目前，X2眼镜的语音输入法仅能在“手机原生应用”模式中使用，例如抖音、B站。

消费者和开发者无法直接调用该功能，如需使用语音输入法，需要接入第三方的ASR服务。

### **15. 应用在眼镜上运行时发热怎么处理？**

以下是应用开发过程中需要注意的几个问题，以避免主板过热、系统关闭和显示异常：

**2个主要问题导致眼镜过热**

* 尽量减少显示内容的占比，尤其是白色内容比较消耗电量
* 总电流超过500mA将导致发热

**几点建议**

1. 使用监控工具来测量眼镜的总电流（可参考调试工具--》设备监控）
2. 在眼镜上运行前预估一下APL（屏占比）
3. 降低系统亮度，保持在20左右可能效果较好
4. 关闭系统中的自动亮度控制(ALS)

### **16. 是否支持多开/后台运行**

暂不支持多开跟后台运行，启动其他应用，上一个应用会被强行杀掉

### **17. 如何将图片保存到相册中，并可以在手机中同步获取？**

【背景】当前手机相册同步需要将图片保存到指定目录，并且提供对应缩列图

1，将需保存的图片保存到/sdcard/DCIM/camera 中

2，同时在/sdcard/DCIM/.thumbnail 中保存两种缩小后的预览图，分别为200px及720px，命名如图

private final Size mThumbnailSize = new Size(960, 720);

private final Size mMiniThumbnailSize = new Size(200, 200);

![](/files/06bed40f43c31b592fdfa75ac9998071a0458406)

### **18. 是否提供UE5 的sdk**

现在暂无ue5的sdk，官方只支持unity跟Android的sdk，可以技术评估一下这两个sdk是否可接入

### **19. 如何获取更精准的GPS数据**

可参考IPCSDK for Android，支持眼镜+手机GPS同步传输，提高数据准确性

### **20. 可以自定义launcher应用吗？**

暂时不支持。

但如果应用上架，可以申请配置，实现语音助手直接启动你的应用。

### **21. 微信小程序如何上架？**

可参考： [如何在x2上开发小程序](/rayneo-devdoc/chang-jian-wen-ti/faq/ru-he-zai-x2-shang-kai-fa-xiao-cheng-xu.md)

### **22. 是否支持离线ASR、TTS**

当前眼镜并不提供端侧ASR及TTS能力，需开发者对接第三方能力实现

### **23. 如何抓log**

【adb方式】adb logcat >outlog.txt

【新手方式】

1.连接眼镜后，在手机app端，进入我的->版本信息，长按图标，至log start出现，然后复现问题

2.眼镜连接电脑，查看眼镜存储，把这个出现的日志文件提供一下。

![](/files/465c530fa969bcf293fbf3a433fd7b0fca102438)

### **24. 是否提供不同的麦克风收音模式**

当前内部接口可提供不同的收音模式，若有需要可联系“雷鸟小助手”

预计24年Q3后期，会通过sdk对外提供

### **25. 在X2上通过浏览器运行web XR应用会有什么问题？**

1. X2暂无官方（已完全兼容）浏览器，需使用第三方浏览器（如chrome、Firefox），故可能存在交互、样式、渲染的兼容问题，如浏览器的全景模式按钮无法点击
2. 因眼镜不兼容ARcore及ARkit，故webxr中若涉及到基于这两者的能力，则无法正常运行
3. Webxr当前主要是面向vst模式，而X2眼镜为ost模式，故需将画面中背景进行置黑，只保留虚拟物体，从而实现ost模式，但该方法会导致虚拟物体跟现实空间位置关系错误的问题

故x2设备**当前适合运行图片识别、人脸识别等相对简单且对虚实融合贴合要求不高的内容**，且所使用图像算法需不依赖ARCore及ARKit等系统特性。

其他**涉及虚实融合功能的场景，需要硬件设备与浏览器、ARcore进行适配兼容才可实现，当前暂不支持**

### **26. X2上的SLAM精度是多少？如何校正累计误差？**

眼镜os版本升级到24.6.28以上，且完成设置中的虚实标定后，精度会更好

1. 小范围（在附近走几步，并会回到原位），误差在千分之三以内，绝对误差小于3cm，不会有累计误差
2. 大范围（附近走几米或者不会到原处），误差会较大，且累计误差暂时无法消除

## **unity相关**

### **1. unity如何使用mediapipe的实现手势识别能力？**

手势识别需要独占camera，使用过程无法开启slam-6dof功能，而且功耗可能过高，暂不推荐使用

* 借助 Android SDK 获取手指的所有点位信息，并通过枚举的方式传输给 Unity处理。
* 由于传输的坐标数据量庞大，因此需要尽量减少调用次数，以控制功耗。

### **2. X2 眼镜是否支持AR foundation功能？**

暂不支持AR foundation

### **3. X2如何实现6dof和3dof？**

SDK文档中直接提供该功能，可结合sample进行调试

### **4. 如何调用9轴的3dof**

你可以通过以下方式使用：

FfalconApi.GetAzimuth()

Api.FXRUnity\_NineAxisOrientation

ps：涉及到磁力计校准问题，可先打开地图app触发校准，后续会将该能力外置到全局调用

### **5. sample中的射线如何隐藏，是否可仅保留dot？**

可通过隐藏beamgraphic将射线隐藏掉，如下图，laserbeandot是对应的选择点

![](/files/ea9b7c53abb9eb13897d386b2579c7f7e3518b91)

## **Android相关**

### **1. 针对 Android SDK Maven 服务器无法访问的问题情况说明：**

此问题仅出现在 Android 端的 SDK 中，因为 Maven 服务器是需要通过内网访问的私有服务器。

开发者可以直接使用 AAR 文件（sdk文件中有提供）。

### **2. 是否支持多开/后台运行**

暂不支持多开跟后台运行，启动其他应用，上一个应用会被强行杀掉

### **3. Android端如何控制画面景深**

有个make3DEffect函数，调用这个函数就可以调节左右屏幕的像素偏移，从而模拟出双目视差的景深

### **4. Android端如何实现视频镜像合目**

当前sdk中只支持UI界面合目，并不支持视频镜像合目，可参考如下处理：

BaseMirroActivity只能对常规的UI控件做镜像合目，对于SurfaceView这种类型的，要做额外的处理，来实现合目，可参考下方截图及源码（源码暂不直接对外公开）

| ![](/files/fe7e7d025b7d5eca3b5754334ce3fad0e4aa0674) | ![](/files/35f125ac1aec519a568f904468c3125449689c45) | ![](/files/6da9d68bb4048e0756b7d66bf4b7309f191713b3) |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |

ps：该视频场景建议使用unity开发实现更合适

### **5. webview如何实现双眼合目？**

参考如下方法，但页面滑动需要再优化一下

{% file src="/files/9Cz333niURLkF8OrWC3t" %}

| ![](/files/7ba653b5221a63e63ca8d4fcf8188015909e778a) | ![](/files/d2c3b704a6c5901893c254c96cddf6d822bef7b3) |
| ---------------------------------------------------- | ---------------------------------------------------- |

![](/files/5cee7fed3251361ba2691f650608929f5f475230)

## **其他**

### **1. 三方应用如何 上架到应用商店**

1. 开发者完成功能自测，更稳定更流畅的使用体验能更好的俘获用户
2. 通过开放平台提交资料及apk
   1. 成开放平台注册及认证：open.rayneo.cn
   2. 进入控制台--Android 应用管理
   3. 提交app相关资料以及apk（这将分成两步上传）
3. 通过邮件（<Developer@rayneo.com>）告知，方便我们及时响应你的需求以及后续对接
4. 上架到应用市场前，我们需要：
   1. 功能体验，确保功能完整性及可用
   2. 提交给测试部门完成上架测试
   3. 将测试结果反馈给开发者，若涉及修改，可能会有多次沟通
   4. 最终确保功能达到上架标准，主要包括：
      1. ui及交互是否符合AR眼镜规范
      2. 功能稳定性及完整度
      3. 功耗情况，如是否会严重发烫
5. 确认上架细节
   1. 确认上架素材，包括名字、介绍、使用说明、介绍截图、用户反馈渠道（方便与开发者直接交流）等信息
   2. 确认上架时间


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rayneo.gitbook.io/rayneo-devdoc/chang-jian-wen-ti/faq/kai-fa-wen-ti-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
