Initial commit
This commit is contained in:
58
developer-front/public/docs/README.md
Normal file
58
developer-front/public/docs/README.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 觉远创智开发文档
|
||||
|
||||
欢迎使用觉远创智智能眼镜开放平台开发文档。
|
||||
|
||||
## 快速开始
|
||||
|
||||
只需几步即可开始使用智能眼镜 API。
|
||||
|
||||
### 1. 获取 API 密钥
|
||||
|
||||
首先,您需要在开发者平台注册账号并创建应用来获取 API 密钥。
|
||||
|
||||
### 2. 安装 SDK
|
||||
|
||||
选择适合您平台的 SDK 进行安装:
|
||||
|
||||
#### Android (Kotlin)
|
||||
|
||||
```kotlin
|
||||
implementation 'com.smartglasses:api:2.1.0'
|
||||
```
|
||||
|
||||
#### iOS (Swift)
|
||||
|
||||
```swift
|
||||
.podspec dependency 'SmartGlassesAPI', '~> 2.1.0'
|
||||
```
|
||||
|
||||
#### Web (JavaScript)
|
||||
|
||||
```bash
|
||||
npm install smartglasses-api
|
||||
```
|
||||
|
||||
### 3. 初始化 API
|
||||
|
||||
```javascript
|
||||
// JavaScript 示例
|
||||
const glasses = new SmartGlassesAPI({
|
||||
apiKey: 'your-api-key',
|
||||
deviceId: 'your-device-id'
|
||||
});
|
||||
|
||||
// 连接到设备
|
||||
glasses.connect().then(() => {
|
||||
console.log('设备连接成功');
|
||||
});
|
||||
```
|
||||
|
||||
## 目录
|
||||
|
||||
- [设备端开发](device-dev.md)
|
||||
- [移动端开发](mobile-dev.md)
|
||||
- [后台接入](backend-integrations.md)
|
||||
- [能力中心](capabilities.md)
|
||||
- [API 参考](api-reference.md)
|
||||
- [最佳实践](best-practices.md)
|
||||
|
||||
108
developer-front/public/docs/README_DOCSIFY.md
Normal file
108
developer-front/public/docs/README_DOCSIFY.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Docsify 文档使用说明
|
||||
|
||||
本文档说明如何在项目中管理和编辑 docsify 文档。
|
||||
|
||||
## 文档结构
|
||||
|
||||
```
|
||||
public/docs/
|
||||
├── index.html # Docsify 入口文件
|
||||
├── README.md # 文档首页
|
||||
├── _sidebar.md # 侧边栏导航配置
|
||||
├── device-dev.md # 设备端开发文档
|
||||
├── mobile-dev.md # 移动端开发文档
|
||||
├── backend-integrations.md # 后台接入文档
|
||||
├── capabilities.md # 能力中心文档
|
||||
├── api-reference.md # API 参考文档
|
||||
└── best-practices.md # 最佳实践文档
|
||||
```
|
||||
|
||||
## 如何编辑文档
|
||||
|
||||
### 1. 编辑现有文档
|
||||
|
||||
直接编辑 `public/docs/` 目录下的 `.md` 文件即可。文档使用 Markdown 格式编写。
|
||||
|
||||
### 2. 添加新文档
|
||||
|
||||
1. 在 `public/docs/` 目录下创建新的 `.md` 文件
|
||||
2. 在 `_sidebar.md` 中添加导航链接
|
||||
|
||||
示例:
|
||||
|
||||
```markdown
|
||||
# 在 _sidebar.md 中添加
|
||||
- 新文档
|
||||
- [章节1](new-doc.md#章节1)
|
||||
- [章节2](new-doc.md#章节2)
|
||||
```
|
||||
|
||||
### 3. 修改侧边栏
|
||||
|
||||
编辑 `public/docs/_sidebar.md` 文件来修改侧边栏导航结构。
|
||||
|
||||
## Markdown 语法
|
||||
|
||||
Docsify 支持标准 Markdown 语法,还支持一些扩展功能:
|
||||
|
||||
### 代码高亮
|
||||
|
||||
使用三个反引号包裹代码,并指定语言:
|
||||
|
||||
````markdown
|
||||
```javascript
|
||||
const api = new SmartGlassesAPI()
|
||||
```
|
||||
````
|
||||
|
||||
### 表格
|
||||
|
||||
```markdown
|
||||
| 参数 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| apiKey | string | API 密钥 |
|
||||
```
|
||||
|
||||
### 链接
|
||||
|
||||
```markdown
|
||||
[链接文本](文档路径.md#锚点)
|
||||
```
|
||||
|
||||
## 配置说明
|
||||
|
||||
文档配置在 `public/docs/index.html` 中的 `window.$docsify` 对象中:
|
||||
|
||||
- `name`: 文档名称
|
||||
- `loadSidebar`: 是否加载侧边栏
|
||||
- `subMaxLevel`: 侧边栏最大层级
|
||||
- `search`: 搜索功能配置
|
||||
- `pagination`: 分页配置
|
||||
|
||||
## 访问文档
|
||||
|
||||
文档通过以下方式访问:
|
||||
|
||||
1. **在 Vue 应用中**:访问 `/docs` 路由
|
||||
2. **直接访问**:访问 `http://localhost:81/docs/index.html`
|
||||
|
||||
## 插件说明
|
||||
|
||||
当前使用的 Docsify 插件:
|
||||
|
||||
- **搜索插件**:支持全文搜索
|
||||
- **分页插件**:支持章节导航
|
||||
- **代码高亮**:支持多种编程语言
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 文档文件必须放在 `public/docs/` 目录下
|
||||
2. 修改文档后,刷新页面即可看到更新
|
||||
3. 侧边栏文件必须命名为 `_sidebar.md`
|
||||
4. 首页文件必须命名为 `README.md`
|
||||
|
||||
## 更多信息
|
||||
|
||||
- [Docsify 官方文档](https://docsify.js.org/)
|
||||
- [Markdown 语法指南](https://www.markdownguide.org/)
|
||||
|
||||
36
developer-front/public/docs/_sidebar - 副本.md
Normal file
36
developer-front/public/docs/_sidebar - 副本.md
Normal file
@@ -0,0 +1,36 @@
|
||||
- [首页](/)
|
||||
- [快速开始](README.md#快速开始)
|
||||
|
||||
- 设备端开发
|
||||
- [设备型号](device-dev.md#设备型号)
|
||||
- [Vision Basic](device-dev.md#vision-basic)
|
||||
- [Vision Pro](device-dev.md#vision-pro)
|
||||
- [Vision Elite](device-dev.md#vision-elite)
|
||||
|
||||
- 移动端开发
|
||||
- [平台支持](mobile-dev.md#平台支持)
|
||||
- [Android](mobile-dev.md#android)
|
||||
- [iOS](mobile-dev.md#ios)
|
||||
- [Web](mobile-dev.md#web)
|
||||
|
||||
- 后台接入
|
||||
- [鉴权](backend-integrations.md#鉴权)
|
||||
- [接口调用](backend-integrations.md#接口调用)
|
||||
- [回调处理](backend-integrations.md#回调处理)
|
||||
|
||||
- 能力中心
|
||||
- [语音识别](capabilities.md#语音识别)
|
||||
- [转写服务](capabilities.md#转写服务)
|
||||
- [翻译服务](capabilities.md#翻译服务)
|
||||
- [AI 助手](capabilities.md#ai-助手)
|
||||
|
||||
- API 参考
|
||||
- [显示 API](api-reference.md#显示-api)
|
||||
- [语音 API](api-reference.md#语音-api)
|
||||
- [传感器 API](api-reference.md#传感器-api)
|
||||
|
||||
- 最佳实践
|
||||
- [性能优化](best-practices.md#性能优化)
|
||||
- [用户体验](best-practices.md#用户体验)
|
||||
- [故障排除](best-practices.md#故障排除)
|
||||
|
||||
58
developer-front/public/docs/_sidebar.md
Normal file
58
developer-front/public/docs/_sidebar.md
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
- [1. 文档概述](venus-sdk-1.0.md#_1-文档概述)
|
||||
|
||||
- [2. 支持平台与版本](venus-sdk-1.0.md#_2-支持平台与版本)
|
||||
|
||||
- [3. 快速开始](venus-sdk-1.0.md#_3-快速开始)
|
||||
- [3.1 集成SDK](venus-sdk-1.0.md#_31-集成sdk)
|
||||
- [3.2 声明权限](venus-sdk-1.0.md#_32-声明权限)
|
||||
- [3.3 混淆配置](venus-sdk-1.0.md#_33-混淆配置)
|
||||
- [3.4 SDK初始化](venus-sdk-1.0.md#_34-sdk初始化)
|
||||
- [3.5 获取SDK构建信息](venus-sdk-1.0.md#_35-获取sdk构建信息)
|
||||
|
||||
- [4. 设备连接和配置](venus-sdk-1.0.md#_4-设备连接和配置)
|
||||
- [4.1 设备扫描](venus-sdk-1.0.md#_41-设备扫描)
|
||||
- [4.2 设备连接管理](venus-sdk-1.0.md#_42-设备连接管理)
|
||||
- [4.3 设备信息获取](venus-sdk-1.0.md#_43-设备信息获取)
|
||||
- [4.4 系统配置获取](venus-sdk-1.0.md#_44-系统配置获取)
|
||||
- [4.5 时间设置](venus-sdk-1.0.md#_45-时间设置)
|
||||
- [4.6 亮度设置](venus-sdk-1.0.md#_46-亮度设置)
|
||||
- [4.7 音量设置](venus-sdk-1.0.md#_47-音量设置)
|
||||
- [4.8 显示模式设置](venus-sdk-1.0.md#_48-显示模式设置)
|
||||
- [4.9 系统语言设置](venus-sdk-1.0.md#_49-系统语言设置)
|
||||
- [4.10 通知功能设置](venus-sdk-1.0.md#_410-通知功能设置)
|
||||
- [4.11 触控板设置](venus-sdk-1.0.md#_411-触控板设置)
|
||||
- [4.12 静置状态自动熄屏设置](venus-sdk-1.0.md#_412-静置状态自动熄屏设置)
|
||||
- [4.13 非活跃状态自动熄屏设置](venus-sdk-1.0.md#_413-非活跃状态自动熄屏设置)
|
||||
- [4.14 熄屏状态自动关机设置](venus-sdk-1.0.md#_414-熄屏状态自动关机设置)
|
||||
- [4.15 佩戴检测设置](venus-sdk-1.0.md#_415-佩戴检测设置)
|
||||
|
||||
- [5. 系统状态和操控](venus-sdk-1.0.md#_5-系统状态和操控)
|
||||
- [5.1 获取、监听、设置系统状态](venus-sdk-1.0.md#_51-获取监听设置系统状态)
|
||||
- [5.2 触控板](venus-sdk-1.0.md#_52-触控板)
|
||||
- [5.3 应用的进入和退出](venus-sdk-1.0.md#_53-应用的进入和退出)
|
||||
- [5.4 通知](venus-sdk-1.0.md#_54-通知)
|
||||
- [5.5 文件系统](venus-sdk-1.0.md#_55-文件系统)
|
||||
- [5.6 查看存储空间](venus-sdk-1.0.md#_56-查看存储空间)
|
||||
- [5.7 监听设备主动消息](venus-sdk-1.0.md#_57-监听设备主动消息)
|
||||
- [5.8 重启](venus-sdk-1.0.md#_58-重启)
|
||||
- [5.9 恢复出厂设置](venus-sdk-1.0.md#_59-恢复出厂设置)
|
||||
- [5.10 解绑设备](venus-sdk-1.0.md#_510-解绑设备)
|
||||
|
||||
- [6. 应用](venus-sdk-1.0.md#_6-应用)
|
||||
- [6.1 实时翻译(语音转文字显示)信息同步](venus-sdk-1.0.md#61-实时翻译语音转文字显示信息同步)
|
||||
- [6.2 实时转写(语音转文字显示)信息同步](venus-sdk-1.0.md#62-实时转写语音转文字显示信息同步)
|
||||
- [6.3 对话信息同步](venus-sdk-1.0.md#_63-对话信息同步)
|
||||
- [6.4 导航信息同步](venus-sdk-1.0.md#_64-导航信息同步)
|
||||
- [6.5 提词信息同步](venus-sdk-1.0.md#_65-提词信息同步)
|
||||
- [6.6 图库](venus-sdk-1.0.md#_66-图库)
|
||||
|
||||
- [7. 应用定制](venus-sdk-1.0.md#_7-应用定制)
|
||||
|
||||
- [8. 固件升级](venus-sdk-1.0.md#_8-固件升级)
|
||||
|
||||
- [9. 常见问题](venus-sdk-1.0.md#_9-常见问题)
|
||||
- [9.1 设备无法扫描到](venus-sdk-1.0.md#_91-设备无法扫描到)
|
||||
- [9.2 设备没有声音](venus-sdk-1.0.md#_92-设备没有声音)
|
||||
|
||||
- [10. 更新历史](venus-sdk-1.0.md#_10-更新历史)
|
||||
170
developer-front/public/docs/api-reference.md
Normal file
170
developer-front/public/docs/api-reference.md
Normal file
@@ -0,0 +1,170 @@
|
||||
# API 参考
|
||||
|
||||
完整的 API 接口文档。
|
||||
|
||||
## 显示 API
|
||||
|
||||
在眼镜显示屏上显示内容。
|
||||
|
||||
### showText(options)
|
||||
|
||||
显示文本内容。
|
||||
|
||||
**参数:**
|
||||
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| text | string | 是 | 要显示的文本 |
|
||||
| position | object | 否 | 显示位置 {x, y} |
|
||||
| fontSize | number | 否 | 字体大小,默认 24 |
|
||||
| color | string | 否 | 颜色,默认 '#FFFFFF' |
|
||||
| duration | number | 否 | 显示时长(毫秒),0 表示永久显示 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
glasses.display.showText({
|
||||
text: 'Hello World',
|
||||
position: { x: 100, y: 200 },
|
||||
fontSize: 24,
|
||||
color: '#FFFFFF',
|
||||
duration: 3000
|
||||
})
|
||||
```
|
||||
|
||||
### showImage(options)
|
||||
|
||||
显示图像。
|
||||
|
||||
**参数:**
|
||||
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| url | string | 是 | 图像 URL |
|
||||
| position | object | 否 | 显示位置 {x, y} |
|
||||
| width | number | 否 | 宽度 |
|
||||
| height | number | 否 | 高度 |
|
||||
| opacity | number | 否 | 透明度,0-1 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
glasses.display.showImage({
|
||||
url: 'https://example.com/image.png',
|
||||
position: { x: 50, y: 100 },
|
||||
width: 200,
|
||||
height: 150,
|
||||
opacity: 0.8
|
||||
})
|
||||
```
|
||||
|
||||
### clear()
|
||||
|
||||
清除所有显示内容。
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
glasses.display.clear()
|
||||
```
|
||||
|
||||
## 语音 API
|
||||
|
||||
语音识别和合成。
|
||||
|
||||
### startRecognition(options)
|
||||
|
||||
启动语音识别。
|
||||
|
||||
**参数:**
|
||||
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| language | string | 否 | 语言代码,默认 'zh-CN' |
|
||||
| continuous | boolean | 否 | 是否连续识别 |
|
||||
| interimResults | boolean | 否 | 是否返回中间结果 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
const recognition = glasses.voice.startRecognition({
|
||||
language: 'zh-CN',
|
||||
continuous: true
|
||||
})
|
||||
|
||||
recognition.on('result', (text) => {
|
||||
console.log('识别结果:', text)
|
||||
})
|
||||
```
|
||||
|
||||
### stopRecognition()
|
||||
|
||||
停止语音识别。
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
glasses.voice.stopRecognition()
|
||||
```
|
||||
|
||||
### speak(text, options)
|
||||
|
||||
语音合成。
|
||||
|
||||
**参数:**
|
||||
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| text | string | 是 | 要合成的文本 |
|
||||
| language | string | 否 | 语言代码 |
|
||||
| speed | number | 否 | 语速,0.5-2.0 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
await glasses.voice.speak('Hello World', {
|
||||
language: 'en-US',
|
||||
speed: 1.0
|
||||
})
|
||||
```
|
||||
|
||||
## 传感器 API
|
||||
|
||||
获取传感器数据。
|
||||
|
||||
### getAccelerometer(callback)
|
||||
|
||||
获取加速度数据。
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
glasses.sensors.getAccelerometer((data) => {
|
||||
console.log('加速度:', data.x, data.y, data.z)
|
||||
})
|
||||
```
|
||||
|
||||
### getGyroscope(callback)
|
||||
|
||||
获取陀螺仪数据。
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
glasses.sensors.getGyroscope((data) => {
|
||||
console.log('角速度:', data.x, data.y, data.z)
|
||||
})
|
||||
```
|
||||
|
||||
### getMagnetometer(callback)
|
||||
|
||||
获取磁力计数据。
|
||||
|
||||
**示例:**
|
||||
|
||||
```javascript
|
||||
glasses.sensors.getMagnetometer((data) => {
|
||||
console.log('磁场强度:', data.x, data.y, data.z)
|
||||
})
|
||||
```
|
||||
|
||||
130
developer-front/public/docs/backend-integrations.md
Normal file
130
developer-front/public/docs/backend-integrations.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# 后台接入
|
||||
|
||||
鉴权、接口调用与回调,国内与海外域名与限速差异,日志与监控。
|
||||
|
||||
## 鉴权
|
||||
|
||||
所有 API 请求都需要进行身份验证。
|
||||
|
||||
### API 密钥
|
||||
|
||||
在请求头中包含您的 API 密钥:
|
||||
|
||||
```http
|
||||
Authorization: Bearer YOUR_API_KEY
|
||||
Content-Type: application/json
|
||||
```
|
||||
|
||||
### 请求签名
|
||||
|
||||
对于敏感操作,需要使用签名验证:
|
||||
|
||||
```javascript
|
||||
const crypto = require('crypto')
|
||||
|
||||
function generateSignature(params, secret) {
|
||||
const sortedParams = Object.keys(params)
|
||||
.sort()
|
||||
.map(key => `${key}=${params[key]}`)
|
||||
.join('&')
|
||||
|
||||
return crypto
|
||||
.createHmac('sha256', secret)
|
||||
.update(sortedParams)
|
||||
.digest('hex')
|
||||
}
|
||||
```
|
||||
|
||||
## 接口调用
|
||||
|
||||
### RESTful API
|
||||
|
||||
基础 URL:
|
||||
- 国内:`https://api.jueyuan.com`
|
||||
- 海外:`https://api-global.jueyuan.com`
|
||||
|
||||
### 示例请求
|
||||
|
||||
```javascript
|
||||
const axios = require('axios')
|
||||
|
||||
const client = axios.create({
|
||||
baseURL: 'https://api.jueyuan.com',
|
||||
headers: {
|
||||
'Authorization': 'Bearer YOUR_API_KEY',
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
|
||||
// 获取设备列表
|
||||
const devices = await client.get('/v1/devices')
|
||||
|
||||
// 发送消息到设备
|
||||
await client.post('/v1/devices/device-id/messages', {
|
||||
type: 'text',
|
||||
content: 'Hello World'
|
||||
})
|
||||
```
|
||||
|
||||
### 限速说明
|
||||
|
||||
不同接口有不同的限速策略:
|
||||
|
||||
- **普通接口**:100 次/分钟
|
||||
- **高频接口**:1000 次/分钟
|
||||
- **批量接口**:10 次/分钟
|
||||
|
||||
超过限速会返回 `429 Too Many Requests` 错误。
|
||||
|
||||
## 回调处理
|
||||
|
||||
### Webhook 配置
|
||||
|
||||
在开发者平台配置 Webhook URL,系统会在事件发生时调用该 URL。
|
||||
|
||||
### 回调验证
|
||||
|
||||
```javascript
|
||||
const crypto = require('crypto')
|
||||
|
||||
function verifyCallback(signature, payload, secret) {
|
||||
const hash = crypto
|
||||
.createHmac('sha256', secret)
|
||||
.update(JSON.stringify(payload))
|
||||
.digest('hex')
|
||||
|
||||
return hash === signature
|
||||
}
|
||||
```
|
||||
|
||||
### 回调事件
|
||||
|
||||
常见回调事件:
|
||||
|
||||
- `device.connected` - 设备连接
|
||||
- `device.disconnected` - 设备断开
|
||||
- `message.received` - 收到消息
|
||||
- `voice.recognized` - 语音识别完成
|
||||
|
||||
## 日志与监控
|
||||
|
||||
### 日志查询
|
||||
|
||||
```javascript
|
||||
// 查询设备日志
|
||||
const logs = await client.get('/v1/devices/device-id/logs', {
|
||||
params: {
|
||||
startTime: '2024-01-01T00:00:00Z',
|
||||
endTime: '2024-01-02T00:00:00Z',
|
||||
level: 'error'
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
### 监控指标
|
||||
|
||||
- API 调用次数
|
||||
- 错误率
|
||||
- 响应时间
|
||||
- 设备在线率
|
||||
|
||||
160
developer-front/public/docs/best-practices.md
Normal file
160
developer-front/public/docs/best-practices.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# 最佳实践
|
||||
|
||||
开发指南和最佳实践。
|
||||
|
||||
## 性能优化
|
||||
|
||||
### 减少 UI 元素
|
||||
|
||||
同时显示的 UI 元素数量会影响性能,建议:
|
||||
|
||||
- 限制同时显示的文本数量(建议 < 10 个)
|
||||
- 使用列表或分页显示大量内容
|
||||
- 及时清理不需要的显示元素
|
||||
|
||||
### 图像优化
|
||||
|
||||
- 使用适当的图像压缩格式(WebP、JPEG)
|
||||
- 限制图像尺寸(建议 < 1024x1024)
|
||||
- 使用 CDN 加速图像加载
|
||||
|
||||
### 位置更新
|
||||
|
||||
避免频繁更新元素位置:
|
||||
|
||||
```javascript
|
||||
// ❌ 不好:每帧都更新
|
||||
setInterval(() => {
|
||||
glasses.display.showText({
|
||||
text: 'Hello',
|
||||
position: { x: Math.random() * 100, y: Math.random() * 100 }
|
||||
})
|
||||
}, 16)
|
||||
|
||||
// ✅ 好:使用动画 API
|
||||
glasses.display.animate({
|
||||
element: textElement,
|
||||
from: { x: 0, y: 0 },
|
||||
to: { x: 100, y: 100 },
|
||||
duration: 1000
|
||||
})
|
||||
```
|
||||
|
||||
### 缓存机制
|
||||
|
||||
合理使用缓存:
|
||||
|
||||
```javascript
|
||||
// 缓存常用图像
|
||||
const imageCache = new Map()
|
||||
|
||||
async function loadImage(url) {
|
||||
if (imageCache.has(url)) {
|
||||
return imageCache.get(url)
|
||||
}
|
||||
|
||||
const image = await fetch(url).then(r => r.blob())
|
||||
imageCache.set(url, image)
|
||||
return image
|
||||
}
|
||||
```
|
||||
|
||||
## 用户体验
|
||||
|
||||
### 界面设计
|
||||
|
||||
- **简洁明了**:避免信息过载
|
||||
- **视觉反馈**:操作后提供明确的反馈
|
||||
- **一致性**:保持界面风格一致
|
||||
|
||||
### 交互方式
|
||||
|
||||
支持多种交互方式:
|
||||
|
||||
- 触摸交互
|
||||
- 语音交互
|
||||
- 手势识别
|
||||
- 头部追踪
|
||||
|
||||
### 环境适应
|
||||
|
||||
考虑不同环境光线条件:
|
||||
|
||||
```javascript
|
||||
// 根据环境光调整显示亮度
|
||||
glasses.display.setBrightness(ambientLight)
|
||||
|
||||
// 使用高对比度颜色
|
||||
const colors = {
|
||||
light: { text: '#000000', bg: '#FFFFFF' },
|
||||
dark: { text: '#FFFFFF', bg: '#000000' }
|
||||
}
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 连接失败
|
||||
|
||||
**问题:** 无法连接到智能眼镜设备
|
||||
|
||||
**解决方案:**
|
||||
1. 检查设备是否已开启
|
||||
2. 确认设备在有效范围内(蓝牙 < 10m,Wi-Fi 同网络)
|
||||
3. 验证 API 密钥是否正确
|
||||
4. 重启设备和应用
|
||||
5. 检查防火墙设置
|
||||
|
||||
### 显示异常
|
||||
|
||||
**问题:** 内容显示位置不正确
|
||||
|
||||
**解决方案:**
|
||||
1. 校准设备显示屏
|
||||
2. 检查坐标参数范围(通常 0-1920 x 0-1080)
|
||||
3. 验证内容尺寸设置
|
||||
4. 更新设备固件
|
||||
5. 检查设备方向设置
|
||||
|
||||
### 语音识别失败
|
||||
|
||||
**问题:** 语音识别不准确或失败
|
||||
|
||||
**解决方案:**
|
||||
1. 检查麦克风权限
|
||||
2. 确保环境噪音较小
|
||||
3. 使用正确的语言代码
|
||||
4. 检查网络连接(在线识别需要网络)
|
||||
5. 尝试使用离线识别模式
|
||||
|
||||
### 性能问题
|
||||
|
||||
**问题:** 应用运行卡顿
|
||||
|
||||
**解决方案:**
|
||||
1. 减少同时显示的 UI 元素
|
||||
2. 优化图像大小和格式
|
||||
3. 使用异步操作避免阻塞主线程
|
||||
4. 监控内存使用,及时释放资源
|
||||
5. 使用性能分析工具定位瓶颈
|
||||
|
||||
## 安全建议
|
||||
|
||||
### API 密钥保护
|
||||
|
||||
- 不要在客户端代码中硬编码 API 密钥
|
||||
- 使用环境变量或配置文件
|
||||
- 定期轮换 API 密钥
|
||||
- 使用 HTTPS 传输
|
||||
|
||||
### 数据加密
|
||||
|
||||
- 敏感数据传输使用加密
|
||||
- 本地存储加密敏感数据
|
||||
- 使用安全的通信协议
|
||||
|
||||
### 权限管理
|
||||
|
||||
- 只请求必要的权限
|
||||
- 向用户说明权限用途
|
||||
- 定期审查权限使用情况
|
||||
|
||||
165
developer-front/public/docs/capabilities.md
Normal file
165
developer-front/public/docs/capabilities.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# 能力中心
|
||||
|
||||
语音、转写、翻译、AI 助手的端到端工作流与常见场景模板。
|
||||
|
||||
## 语音识别
|
||||
|
||||
实时语音识别,支持多种语言和方言。
|
||||
|
||||
### 基础使用
|
||||
|
||||
```javascript
|
||||
// 启动语音识别
|
||||
const recognition = glasses.voice.startRecognition({
|
||||
language: 'zh-CN',
|
||||
continuous: true,
|
||||
interimResults: true
|
||||
})
|
||||
|
||||
recognition.on('result', (text) => {
|
||||
console.log('识别结果:', text)
|
||||
})
|
||||
|
||||
recognition.on('error', (error) => {
|
||||
console.error('识别错误:', error)
|
||||
})
|
||||
```
|
||||
|
||||
### 语言支持
|
||||
|
||||
- 中文(普通话、粤语、四川话等)
|
||||
- 英语
|
||||
- 日语
|
||||
- 韩语
|
||||
- 更多语言持续更新
|
||||
|
||||
## 转写服务
|
||||
|
||||
将音频文件转换为文本。
|
||||
|
||||
### 上传音频
|
||||
|
||||
```javascript
|
||||
const transcription = await glasses.transcription.transcribe({
|
||||
audioUrl: 'https://example.com/audio.mp3',
|
||||
language: 'zh-CN',
|
||||
format: 'text'
|
||||
})
|
||||
|
||||
console.log('转写结果:', transcription.text)
|
||||
```
|
||||
|
||||
### 批量转写
|
||||
|
||||
```javascript
|
||||
const tasks = await glasses.transcription.batchTranscribe([
|
||||
{ audioUrl: 'audio1.mp3', language: 'zh-CN' },
|
||||
{ audioUrl: 'audio2.mp3', language: 'en-US' }
|
||||
])
|
||||
|
||||
tasks.forEach(task => {
|
||||
task.on('complete', (result) => {
|
||||
console.log('转写完成:', result.text)
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
## 翻译服务
|
||||
|
||||
多语言实时翻译。
|
||||
|
||||
### 文本翻译
|
||||
|
||||
```javascript
|
||||
const translation = await glasses.translation.translate({
|
||||
text: 'Hello World',
|
||||
from: 'en',
|
||||
to: 'zh'
|
||||
})
|
||||
|
||||
console.log('翻译结果:', translation.text)
|
||||
```
|
||||
|
||||
### 语音翻译
|
||||
|
||||
```javascript
|
||||
const translation = glasses.translation.translateSpeech({
|
||||
audioUrl: 'audio.mp3',
|
||||
from: 'en',
|
||||
to: 'zh'
|
||||
})
|
||||
|
||||
translation.on('complete', (result) => {
|
||||
console.log('翻译结果:', result.text)
|
||||
console.log('音频URL:', result.audioUrl)
|
||||
})
|
||||
```
|
||||
|
||||
## AI 助手
|
||||
|
||||
智能对话助手,支持上下文理解。
|
||||
|
||||
### 对话
|
||||
|
||||
```javascript
|
||||
const conversation = glasses.ai.createConversation({
|
||||
model: 'gpt-4',
|
||||
systemPrompt: '你是一个智能助手'
|
||||
})
|
||||
|
||||
const response = await conversation.chat('你好')
|
||||
console.log('回复:', response.text)
|
||||
```
|
||||
|
||||
### 流式响应
|
||||
|
||||
```javascript
|
||||
const stream = await conversation.chatStream('请介绍一下智能眼镜')
|
||||
|
||||
stream.on('data', (chunk) => {
|
||||
process.stdout.write(chunk.text)
|
||||
})
|
||||
|
||||
stream.on('end', () => {
|
||||
console.log('\n对话完成')
|
||||
})
|
||||
```
|
||||
|
||||
## 场景模板
|
||||
|
||||
### 会议记录
|
||||
|
||||
```javascript
|
||||
const meeting = glasses.scenarios.createMeeting({
|
||||
participants: ['user1', 'user2'],
|
||||
language: 'zh-CN'
|
||||
})
|
||||
|
||||
meeting.on('transcription', (text) => {
|
||||
// 实时转写
|
||||
console.log('会议内容:', text)
|
||||
})
|
||||
|
||||
meeting.on('summary', (summary) => {
|
||||
// 会议摘要
|
||||
console.log('会议摘要:', summary)
|
||||
})
|
||||
```
|
||||
|
||||
### 实时翻译
|
||||
|
||||
```javascript
|
||||
const translator = glasses.scenarios.createTranslator({
|
||||
from: 'en',
|
||||
to: 'zh'
|
||||
})
|
||||
|
||||
translator.on('translation', (result) => {
|
||||
// 显示翻译结果
|
||||
glasses.display.showText({
|
||||
text: result.text,
|
||||
position: { x: 100, y: 200 }
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
117
developer-front/public/docs/device-dev.md
Normal file
117
developer-front/public/docs/device-dev.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# 设备端开发
|
||||
|
||||
在眼镜设备上开发应用,集成 SDK 与显示渲染,支持语音与传感器能力。
|
||||
|
||||
## 设备型号
|
||||
|
||||
觉远创智提供多款智能眼镜设备,满足不同场景需求。
|
||||
|
||||
### Vision Basic
|
||||
|
||||
入门款智能眼镜,提供基础显示与语音功能。
|
||||
|
||||
**主要特性:**
|
||||
- 基础 AR 显示
|
||||
- 语音交互
|
||||
- 基础传感器支持
|
||||
|
||||
**适用场景:**
|
||||
- 个人用户
|
||||
- 简单应用场景
|
||||
- 入门开发
|
||||
|
||||
### Vision Pro
|
||||
|
||||
高性能智能眼镜,提供更佳的渲染效果与传感器集成。
|
||||
|
||||
**主要特性:**
|
||||
- 高性能 AR 显示
|
||||
- 增强的语音识别
|
||||
- 丰富的传感器支持
|
||||
- 更长的续航时间
|
||||
|
||||
**适用场景:**
|
||||
- 专业应用
|
||||
- 企业级应用
|
||||
- 复杂交互场景
|
||||
|
||||
### Vision Elite
|
||||
|
||||
旗舰款智能眼镜,提供扩展能力与企业特性。
|
||||
|
||||
**主要特性:**
|
||||
- 顶级 AR 显示
|
||||
- 企业级安全特性
|
||||
- 完整的 API 支持
|
||||
- 定制化支持
|
||||
|
||||
**适用场景:**
|
||||
- 企业级应用
|
||||
- 专业开发
|
||||
- 定制化需求
|
||||
|
||||
## SDK 集成
|
||||
|
||||
### Android 设备端
|
||||
|
||||
```kotlin
|
||||
// 添加依赖
|
||||
dependencies {
|
||||
implementation 'com.smartglasses:device-sdk:2.1.0'
|
||||
}
|
||||
|
||||
// 初始化
|
||||
val deviceSDK = DeviceSDK.getInstance(context)
|
||||
deviceSDK.initialize {
|
||||
// SDK 初始化完成
|
||||
}
|
||||
```
|
||||
|
||||
### 显示渲染
|
||||
|
||||
```kotlin
|
||||
// 显示文本
|
||||
deviceSDK.display.showText(
|
||||
text = "Hello World",
|
||||
position = Position(100, 200),
|
||||
fontSize = 24,
|
||||
color = Color.WHITE,
|
||||
duration = 3000
|
||||
)
|
||||
|
||||
// 显示图像
|
||||
deviceSDK.display.showImage(
|
||||
imageUrl = "https://example.com/image.png",
|
||||
position = Position(50, 100),
|
||||
width = 200,
|
||||
height = 150
|
||||
)
|
||||
```
|
||||
|
||||
## 语音交互
|
||||
|
||||
```kotlin
|
||||
// 启动语音识别
|
||||
deviceSDK.voice.startRecognition { result ->
|
||||
// 处理识别结果
|
||||
println("识别结果: $result")
|
||||
}
|
||||
|
||||
// 停止语音识别
|
||||
deviceSDK.voice.stopRecognition()
|
||||
```
|
||||
|
||||
## 传感器数据
|
||||
|
||||
```kotlin
|
||||
// 获取加速度数据
|
||||
deviceSDK.sensors.getAccelerometer { data ->
|
||||
// 处理加速度数据
|
||||
}
|
||||
|
||||
// 获取陀螺仪数据
|
||||
deviceSDK.sensors.getGyroscope { data ->
|
||||
// 处理陀螺仪数据
|
||||
}
|
||||
```
|
||||
|
||||
106
developer-front/public/docs/index.html
Normal file
106
developer-front/public/docs/index.html
Normal file
@@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>觉远创智开发文档</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="description" content="觉远创智智能眼镜开放平台开发文档">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
|
||||
<!-- DNS 预解析和预连接优化 -->
|
||||
<link rel="dns-prefetch" href="https://cdn.staticfile.org">
|
||||
<link rel="dns-prefetch" href="https://unpkg.com">
|
||||
<link rel="preconnect" href="https://cdn.staticfile.org" crossorigin>
|
||||
|
||||
<!-- 直接加载 CSS,避免阻塞渲染 -->
|
||||
<link rel="stylesheet" href="https://cdn.staticfile.org/docsify/4.13.1/themes/vue.css">
|
||||
|
||||
<style>
|
||||
:root {
|
||||
--theme-color: #42b983;
|
||||
--sidebar-width: 300px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">加载中...</div>
|
||||
<script>
|
||||
window.$docsify = {
|
||||
name: '',
|
||||
repo: '',
|
||||
homepage: 'venus-sdk-1.0.md',
|
||||
loadSidebar: true,
|
||||
subMaxLevel: 3,
|
||||
auto2top: true,
|
||||
coverpage: false,
|
||||
alias: {
|
||||
'/.*/_sidebar.md': '/_sidebar.md'
|
||||
},
|
||||
// 自定义 slugify 函数,确保锚点正确生成(与文档内部链接格式一致)
|
||||
slugify: function(text) {
|
||||
// 移除标题标记和空格
|
||||
text = text.trim();
|
||||
// 移除中文括号和标点符号
|
||||
var slug = text
|
||||
.replace(/[()()【】\[\]《》<>""'',。、;:!?]/g, '') // 移除中文和英文标点符号
|
||||
.replace(/\./g, '') // 移除点号(如 6.1 -> 61)
|
||||
.replace(/\s+/g, '-') // 空格替换为连字符
|
||||
.replace(/[^\u4e00-\u9fa5a-z0-9-]+/g, '') // 移除其他非中文、字母、数字、连字符的字符
|
||||
.replace(/^-+|-+$/g, '') // 移除首尾连字符
|
||||
.replace(/-+/g, '-'); // 多个连字符合并为一个
|
||||
slug = slug.toLowerCase(); // 转为小写(docsify 默认行为)
|
||||
// 如果以数字开头,添加下划线前缀(匹配 sidebar 链接格式)
|
||||
if (/^\d/.test(slug)) {
|
||||
slug = '_' + slug;
|
||||
}
|
||||
return slug;
|
||||
},
|
||||
search: {
|
||||
maxAge: 86400000,
|
||||
paths: 'auto',
|
||||
placeholder: '搜索文档',
|
||||
noData: '找不到结果!',
|
||||
depth: 6
|
||||
},
|
||||
pagination: {
|
||||
previousText: '上一章节',
|
||||
nextText: '下一章节',
|
||||
crossChapter: true,
|
||||
crossChapterText: true,
|
||||
},
|
||||
plugins: [
|
||||
function(hook, vm) {
|
||||
hook.beforeEach(function(html) {
|
||||
return html
|
||||
})
|
||||
hook.afterEach(function(html, next) {
|
||||
next(html)
|
||||
})
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- 使用国内 CDN (staticfile.org 七牛云) 并优化加载顺序 -->
|
||||
<!-- Docsify 核心库 -->
|
||||
<script src="https://cdn.staticfile.org/docsify/4.13.1/docsify.min.js" defer></script>
|
||||
|
||||
<!-- 搜索插件 -->
|
||||
<script src="https://cdn.staticfile.org/docsify/4.13.1/plugins/search.min.js" defer></script>
|
||||
|
||||
<!-- 分页插件 - 使用 unpkg 作为备选 -->
|
||||
<script src="https://unpkg.com/docsify-pagination@2.10.1/dist/docsify-pagination.min.js" defer></script>
|
||||
|
||||
<!-- Prism 代码高亮 - 使用 defer 异步加载,合并加载顺序 -->
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-core.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-bash.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-javascript.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-java.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-kotlin.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-swift.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-python.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-json.min.js" defer></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/components/prism-markdown.min.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
161
developer-front/public/docs/mobile-dev.md
Normal file
161
developer-front/public/docs/mobile-dev.md
Normal file
@@ -0,0 +1,161 @@
|
||||
# 移动端开发
|
||||
|
||||
完成配对与权限接入,下载示例 App 并查看开源仓库,集成通知与同步。
|
||||
|
||||
## 平台支持
|
||||
|
||||
觉远创智 SDK 支持以下移动端平台:
|
||||
|
||||
### Android
|
||||
|
||||
使用 Kotlin/Java 开发,支持蓝牙和 Wi-Fi 配对,需要相应权限。
|
||||
|
||||
**环境要求:**
|
||||
- Android 5.0 (API 21) 及以上
|
||||
- Kotlin 1.5+ 或 Java 8+
|
||||
|
||||
**安装:**
|
||||
|
||||
```gradle
|
||||
dependencies {
|
||||
implementation 'com.smartglasses:mobile-sdk:2.1.0'
|
||||
}
|
||||
```
|
||||
|
||||
**初始化:**
|
||||
|
||||
```kotlin
|
||||
val mobileSDK = MobileSDK.getInstance(context)
|
||||
mobileSDK.initialize(
|
||||
apiKey = "your-api-key",
|
||||
appId = "your-app-id"
|
||||
)
|
||||
```
|
||||
|
||||
**设备配对:**
|
||||
|
||||
```kotlin
|
||||
// 扫描设备
|
||||
mobileSDK.scanDevices { devices ->
|
||||
// 选择设备进行配对
|
||||
mobileSDK.pairDevice(devices[0]) { success ->
|
||||
if (success) {
|
||||
println("配对成功")
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### iOS
|
||||
|
||||
使用 Swift 开发,需要麦克风和通知权限,支持设备绑定。
|
||||
|
||||
**环境要求:**
|
||||
- iOS 12.0 及以上
|
||||
- Swift 5.0+
|
||||
|
||||
**安装:**
|
||||
|
||||
```ruby
|
||||
pod 'SmartGlassesMobileSDK', '~> 2.1.0'
|
||||
```
|
||||
|
||||
**初始化:**
|
||||
|
||||
```swift
|
||||
import SmartGlassesMobileSDK
|
||||
|
||||
let mobileSDK = MobileSDK.shared
|
||||
mobileSDK.initialize(
|
||||
apiKey: "your-api-key",
|
||||
appId: "your-app-id"
|
||||
)
|
||||
```
|
||||
|
||||
**设备配对:**
|
||||
|
||||
```swift
|
||||
// 扫描设备
|
||||
mobileSDK.scanDevices { devices in
|
||||
// 选择设备进行配对
|
||||
mobileSDK.pairDevice(devices[0]) { success in
|
||||
if success {
|
||||
print("配对成功")
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Web
|
||||
|
||||
使用 Web API 进行开发,支持进度上报。
|
||||
|
||||
**安装:**
|
||||
|
||||
```bash
|
||||
npm install smartglasses-mobile-sdk
|
||||
```
|
||||
|
||||
**使用:**
|
||||
|
||||
```javascript
|
||||
import { MobileSDK } from 'smartglasses-mobile-sdk'
|
||||
|
||||
const mobileSDK = new MobileSDK({
|
||||
apiKey: 'your-api-key',
|
||||
appId: 'your-app-id'
|
||||
})
|
||||
|
||||
// 初始化
|
||||
await mobileSDK.initialize()
|
||||
|
||||
// 扫描设备
|
||||
const devices = await mobileSDK.scanDevices()
|
||||
|
||||
// 配对设备
|
||||
await mobileSDK.pairDevice(devices[0])
|
||||
```
|
||||
|
||||
## 权限配置
|
||||
|
||||
### Android
|
||||
|
||||
在 `AndroidManifest.xml` 中添加权限:
|
||||
|
||||
```xml
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
```
|
||||
|
||||
### iOS
|
||||
|
||||
在 `Info.plist` 中添加权限说明:
|
||||
|
||||
```xml
|
||||
<key>NSBluetoothAlwaysUsageDescription</key>
|
||||
<string>需要蓝牙权限以连接智能眼镜设备</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>需要麦克风权限以进行语音交互</string>
|
||||
```
|
||||
|
||||
## 通知集成
|
||||
|
||||
```kotlin
|
||||
// Android 示例
|
||||
mobileSDK.notifications.sendNotification(
|
||||
title = "新消息",
|
||||
content = "您有一条新消息",
|
||||
icon = R.drawable.notification_icon
|
||||
)
|
||||
```
|
||||
|
||||
```swift
|
||||
// iOS 示例
|
||||
mobileSDK.notifications.sendNotification(
|
||||
title: "新消息",
|
||||
body: "您有一条新消息"
|
||||
)
|
||||
```
|
||||
|
||||
1875
developer-front/public/docs/venus-sdk-1.0.md
Normal file
1875
developer-front/public/docs/venus-sdk-1.0.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user