makecindy / makecindy/cindy

[Bug] 海外 Android 三星机型偶发无法显示并申请麦克风权限

Open
#1,772 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

### 问题描述 / What happened

海外 Android 三星设备上,首次点击语音输入时提示麦克风权限未开启,但进入系统应用权限设置后找不到“麦克风”权限入口,因此无法完成授权。

同一设备后续降级到旧版本后,点击语音可以正常触发授权;升级到热更版本后也可以正常点击授权,问题暂未再次复现。

期望行为:

- 未授权时点击语音能够触发系统麦克风权限申请;
- 或进入系统应用权限设置后能够看到“麦克风”权限;
- 授权后可以正常使用语音输入。

### 环境 / Environment

- Cindy 版本或 commit / version or commit:
- 三星问题设备的具体版本未知;
- 海外小米设备使用 0.1.28 时语音权限和语音输入正常。
- 平台与版本 / platform & OS version:
- 海外 Global Android;
- 三星机型和 Android 系统版本待补充。
- 安装方式 / install method:
- 通过版本降级和热更升级进行对比,具体安装渠道待补充。

### 复现步骤 / Steps to reproduce

1. 在海外 Android 三星设备上打开 Cindy。
2. 点击语音输入按钮。
3. 在应用提示麦克风权限未开启后,点击设置入口。
4. 查看系统的 Cindy 应用权限页面。
5. 观察权限列表中没有“麦克风”入口,无法完成授权。

当前仅出现过一次,无法稳定复现。

### 源码定位与相关背景

当前主干配置中:

- `expo-audio` 配置了 `recordAudioAndroid: true`;
- `expo-image-picker` 未再禁用麦克风权限;
- 新建会话页和已有会话页都会先读取权限,再调用 `requestRecordingPermissionsAsync()`;
- Android 系统权限弹窗触发后台状态的竞态已由 #317 处理。

历史 Issue #602 曾出现相同的“系统权限页没有麦克风入口”现象,后续确认是原生 Manifest 权限被插件配置覆盖。该修复属于原生配置变更,单靠 OTA 无法为旧安装包新增系统权限。

本次反馈后续通过降级和热更恢复,暂不能确认是旧原生包、三星系统权限管理状态,还是权限请求时序导致。请协助补充实际安装包版本、三星具体机型、Android 版本及对应构建/热更 ID,以便继续判断。

### 日志与截图 / Logs & screenshots

暂无日志。相关截图暂未附,后续可补充脱敏版本。

Contributor guide

Open the contributing guide

Research direction

Start by inspecting the new-session and existing-session voice-input permission flows, especially calls to requestRecordingPermissionsAsync(), and review the expo-audio configuration. Reproduce on the affected Samsung device if possible, collecting the app version, device, Android version, build or hot-update ID, logs, and screenshots. Done requires a confirmed cause and a verified permission flow or a documented reason why the issue cannot yet be reproduced.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, react-native, typescript
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.