android app無法拍照


現象,app能打開像機,拍照,確認后,沒有執行回調,直接返回了主窗口。

原因:進入手機設置->應用權限:獲取手機信息,將這個打開,正常了!

手機:小米note 3 android 9

解決辦法:用代碼動態申請READ_PHONE_STATE權限:

procedure TMainForm.RequestPermission;
begin
{$IF  DEFINED(ANDROID)}
  PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.CAMERA),
                                         JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION),
                                         JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION),
                                         JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
                                         JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE),
                                         JStringToString(TJManifest_permission.JavaClass.BLUETOOTH),
                                         JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN),
                                         JStringToString(TJManifest_permission.JavaClass.READ_PHONE_STATE)  //這個權限影響拍照功能
                                         ],
                                        procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
                                        begin
                                          if (Length(AGrantResults) = 0) then
                                          begin

                                          end;
                                        end);
{$ENDIF}
end;

為什么這個權限影響了拍照功能呢?想不明白。

與同事們討論這個問題,得出一個結論:小米手機在拍照時,在照片上寫水印,而讀取這個水印信息,需要READ_PHONE_STATE權限。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM