Delphi10.4 Android调用相机返回图片调试
使用Delphi封装的“Standard Action”这些标准操作,可以非常方便我们调用Android系统功能。
在Android上会存在各类权限问题造成应用无法运行
创建工程
File->New -> Multi-Device Application - Delphi
选择" Blank Application",点击"OK"完成工程创建
拖入控件
放入一个TButton,一个TImage,一个TActionList
使用鼠标双击ActionList1图标,弹出窗口"Editing Form1.ActionList1", 在Categories:列表下右键选择"New Standard Action..."
这里“Standard Action”Delphi封装了一些标准操作,我们选取过来用即可。
在“Standard Action Classes”选择TTakePhotoFromCameraAction,双击或下方OK将其添加到ActionList1中
给添加到TakePhotoFromCameraAction1的操作重新定义一个文本“调起相机”
编写代码
在TakePhotoFromCameraAction1的事件OnDidFinishTaking里添加代码
Image1.Bitmap.Assign(Image);
将调起相机拍照成功后将图片显示在Image1控件上
工程设置
Project->Options...检查应用权限
下面这里很重要,默认工程的“Secure File Sharing”为False需要改为true,不然生成的apk即使手机给了存储及相机的权限也一样提示错误没权限等
设置完后将apk安装到手机,点击“调起相机“会报错”Required permission(s) [CAMERA,WRITE_EXTERNAL_STORAGE] hav not been granted“ 权限不足
手机设置权限
这里以小米10为例,需要给应用"读写手机存储"及“相机”这两项权限
重新尝试,成功
调试错误
默认工程的“Secure File Sharing”为False时遇到错误