应用已经实现了基本的相机功能,你可以直接构建和运行:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
./gradlew assembleDebug- 启动应用后看到黑屏(这是正常的)
- 左上角显示当前音量
- 点击屏幕任意位置拍照
- 按音量键拍照
- 调整音量时自动拍照
- 点击右下角灰色按钮可以切换显示相机预览
编辑 app/src/main/java/com/android/example/cameraxbasic/oss/OSSConfig.kt:
object OSSConfig {
// 替换为你的实际配置
const val ENDPOINT = "https://oss-cn-hangzhou.aliyuncs.com"
const val BUCKET_NAME = "your-bucket-name"
const val STS_BASE_URL = "https://your-api-domain.com"
const val STS_ROLE = "oss_normal_op"
const val UPLOAD_FOLDER = "camera-photos/"
}确保你的STS服务正常运行,可以通过以下方式测试:
curl "https://your-api-domain.com/thrid_party/aliyun/sts/oss_normal_op?duration=3600"应该返回类似这样的JSON:
{
"SecurityToken": "...",
"Expiration": "2024-01-01T12:00:00Z",
"AccessKeySecret": "...",
"AccessKeyId": "..."
}- 构建并安装应用
- 拍照
- 查看Logcat日志确认上传状态:
adb logcat | grep -E "(OSSUploadService|CameraXBasic)"
- 检查设备网络连接
- 确认API地址正确
- 如果使用HTTP,需要在AndroidManifest.xml中添加:
<application android:usesCleartextTraffic="true" ...>
- 检查API返回格式是否正确
- 确认role参数是否为"oss_normal_op"
- 查看详细错误日志
- 检查OSS配置是否正确
- 确认bucket权限设置
- 检查STS凭证是否有效
应用会输出详细的日志信息,主要标签:
OSSUploadService: OSS上传相关CameraXBasic: 相机功能相关
查看日志命令:
# 查看所有相关日志
adb logcat | grep -E "(OSSUploadService|CameraXBasic)"
# 只查看上传相关日志
adb logcat | grep OSSUploadService
# 查看错误日志
adb logcat | grep -E "(ERROR|WARN)"- 应用正常启动,显示黑屏
- 左上角显示音量数字
- 点击屏幕可以拍照
- 音量键可以拍照
- 调整音量时自动拍照
- 右下角按钮可以切换显示
- 拍照后显示上传状态提示
- 日志中显示上传成功信息和图片URL
- OSS中可以看到上传的图片
- 图片URL自动复制到剪贴板
- 图片URL保存到本地存储
配置完成后,你可以:
- 自定义上传路径和文件命名规则
- 添加图片压缩功能
- 实现上传进度显示
- 添加重试机制
- 实现批量上传功能