Delphi10.4 Android调用相机返回图片调试

使用Delphi封装的“Standard Action”这些标准操作,可以非常方便我们调用Android系统功能。

在Android上会存在各类权限问题造成应用无法运行

创建工程

 File->New -> Multi-Device Application - Delphi

Delphi10.4 Android调用相机返回图片调试_Camera

选择" Blank Application",点击"OK"完成工程创建

Delphi10.4 Android调用相机返回图片调试_Android_02

拖入控件

放入一个TButton,一个TImage,一个TActionList

Delphi10.4 Android调用相机返回图片调试_Android_03

使用鼠标双击ActionList1图标,弹出窗口"Editing Form1.ActionList1", 在Categories:列表下右键选择"New Standard Action..."

这里“Standard Action”Delphi封装了一些标准操作,我们选取过来用即可。


Delphi10.4 Android调用相机返回图片调试_Camera_04

在“Standard Action Classes”选择TTakePhotoFromCameraAction,双击或下方OK将其添加到ActionList1中

Delphi10.4 Android调用相机返回图片调试_Standard Action_05

给添加到TakePhotoFromCameraAction1的操作重新定义一个文本“调起相机” 

Delphi10.4 Android调用相机返回图片调试_Android_06

编写代码

在TakePhotoFromCameraAction1的事件OnDidFinishTaking里添加代码

 Image1.Bitmap.Assign(Image);

将调起相机拍照成功后将图片显示在Image1控件上

Delphi10.4 Android调用相机返回图片调试_Camera_07

Delphi10.4 Android调用相机返回图片调试_Android_08

工程设置

Project->Options...检查应用权限

Delphi10.4 Android调用相机返回图片调试_Delphi_09

Delphi10.4 Android调用相机返回图片调试_Standard Action_10

下面这里很重要,默认工程的“Secure File Sharing”为False需要改为true,不然生成的apk即使手机给了存储及相机的权限也一样提示错误没权限等

Delphi10.4 Android调用相机返回图片调试_Delphi_11

设置完后将apk安装到手机,点击“调起相机“会报错”Required permission(s) [CAMERA,WRITE_EXTERNAL_STORAGE] hav not been granted“ 权限不足

Delphi10.4 Android调用相机返回图片调试_Camera_12

手机设置权限

这里以小米10为例,需要给应用"读写手机存储"及“相机”这两项权限

Delphi10.4 Android调用相机返回图片调试_Delphi_13

Delphi10.4 Android调用相机返回图片调试_Delphi_14Delphi10.4 Android调用相机返回图片调试_Android_15Delphi10.4 Android调用相机返回图片调试_Camera_16

重新尝试,成功

Delphi10.4 Android调用相机返回图片调试_Android_17

调试错误

默认工程的“Secure File Sharing”为False时遇到错误

Delphi10.4 Android调用相机返回图片调试_Delphi_18Delphi10.4 Android调用相机返回图片调试_Android_19




阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: android