cuốn sách gpt4 ai đã làm

Hongmeng lưu ảnh vào album

In lại Tác giả: Sahara Thời gian cập nhật: 2024-12-31 10:38:57 57 4
mua khóa gpt4 Nike

Tuy nhiên, các quyền tương ứng trong Hongmeng bị hạn chế và các ứng dụng thông thường không được phép sử dụng các ứng dụng. sử dụng điều khiển lưu an toàn để tạm thời xin quyền. Được sử dụng để lưu ảnh vào album ảnh.

Chế độ mở quyền hạn chế

Quyền của ứng dụng được chia thành ba loại. đều có thể đăng ký sử dụng; loại còn lại là các quyền được mở theo chế độ hạn chế và chỉ một số ít ứng dụng đáp ứng các trường hợp đặc biệt mới có thể sử dụng các quyền được hạn chế sau khi được phê duyệt cuối cùng là Lớp này; chỉ mở cho MDM thiết bị quản lý ứng dụng (Quản lý thiết bị di động).

Quyền liên quan đến việc lưu ảnh vào máy ảnh là ohos.permission.WRITE_IMAGEVIDEO. hợp nhất và các chức năng đặc biệt. Kiểm soát quyền bảo mật để tạm thời áp dụng quyền.

Lưu cục bộ ảnh vào máy ảnh bằng toàn bộ điều khiển

Trước đó, chúng tôi sử dụng kiểm soát bảo mật để cho phép người dùng nhấp vào để tạm thời nhận được quyền.

nhập { photoAccessHelper } từ '@kit.MediaLibraryKit' @Entry @ComponentV2 struct Index { build() { Column() { SaveButton({ icon: SaveIconStyle.LINES, text: SaveDescription.SAVE_TO_GALLERY, ButtonType: ButtonType.Capsule }) .onClick (() => { this.savePhotoToGallery().then(() => { this.getUIContext().getPromptAction().showToast({ message: 'Save thành công' }) }).catch((err: Error) => { this. getUIContext().getPromptAction().showToast({ message: err.message }) }) }) } } lưu không đồng bộ công khaiPhotoToGallery(): Promise { const ctx = getContext() const helper = photoAccessHelper.getPhotoAccessHelper(ctx) const src = ctx.resourceDir + '/icon.png' const request = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(ctx, src) return helper.applyChanges(request) } }

Trong ví dụ trên, hãy đảm bảo rằng icon.png thực sự tồn tại cục bộ. Khi chúng tôi sử dụng trình trợ giúp để gọi applyChanges, vì nó được gọi sau khi nhấp vào kiểm soát bảo mật, các quyền sẽ tạm thời được cấp và có thể được thực thi bình thường. Nếu nó không nằm trong kiểm soát bảo mật, bạn cần đảm bảo rằng các quyền tương ứng đã được cấp. thu được.

## Sử dụng các biện pháp kiểm soát bảo mật để lưu ảnh phía máy chủ vào máy ảnh

Đối với ảnh phía máy chủ, chúng tôi thường sử dụng dịch vụ tải xuống để tải ảnh xuống cục bộ. Nếu không cần sao lưu cục bộ, chỉ cần lưu trực tiếp bộ đệm ảnh đã tải xuống vào album. Chúng ta chuyển đổi hình ảnh cục bộ thành bộ đệm để mô phỏng hình ảnh được máy chủ tải xuống, sau đó sử dụng photoAccessHelper để tạo tài nguyên hình ảnh album và ghi bộ đệm hình ảnh của chúng ta vào tài nguyên hình ảnh này, sau đó chúng ta có thể lưu hình ảnh vào album. như sau.

nhập { photoAccessHelper } từ '@kit.MediaLibraryKit' nhập fs từ '@ohos.file.fs' @Entry @ComponentV2 struct Index { build() { Column() { SaveButton({ icon: SaveIconStyle.LINES, text: SaveDescription. SAVE_TO_GALLERY, ButtonType: ButtonType.Capsule }) .onClick(() => { this.savePhotoToGallery().then(() => { this.getUIContext().getPromptAction().showToast({ message: 'Save thành công' }) }).catch((err: Error) => { this.getUIContext ().getPromptAction().showToast({ message: err.message }) }) }) } } không đồng bộ công khai savePhotoToGallery(): Promise { const ctx = getContext() const helper = photoAccessHelper.getPhotoAccessHelper(ctx) return Promise.all([helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'png').then((uri) => { return fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE) }), ctx.resourceManager.getMediaContent($r('app.media.app_icon').id, 0)]).then((array) => { fs.writeSync(array[0] .fd, array[1].buffer) fs.closeSync(array[0].fd) }) } }

Lưu hình ảnh bằng cửa sổ bật lên xác nhận lưu

Các phương pháp trước đây đều phụ thuộc nhiều vào kiểm soát bảo mật, nhưng trong một số trường hợp, chúng ta không thể sử dụng kiểm soát bảo mật, chẳng hạn như trong trang H5, trang Flutter, v.v. Lúc này, chúng ta có thể sử dụng cửa sổ bật lên xác nhận lưu để lưu hình ảnh . Khi chúng tôi gọi showAssetsCreationDialog thông qua photoAccessHelper, hệ thống sẽ bật lên một cửa sổ bật lên xác nhận. Nếu người dùng nhấp vào Cho phép, chúng tôi có thể lưu ảnh vào album. Nếu người dùng nhấp vào Tắt, ảnh không thể được lưu vào album. Sử dụng phương pháp này, chúng ta không phải phụ thuộc nhiều vào các biện pháp kiểm soát bảo mật. Ví dụ như sau.

nhập { photoAccessHelper } từ '@kit.MediaLibraryKit' nhập fs từ '@ohos.file.fs' @Entry @ComponentV2 struct Index { @Local isShowHome: boolean = false build() { Column() { Button('Save the picture vào Album').onClick(()=>{ this.savePhotoToGallery().then(() => { this.getUIContext().getPromptAction().showToast({ tin nhắn: 'Lưu thành công' }) }).catch((err: Error) => { this.getUIContext().getPromptAction().showToast({ tin nhắn: err .message }) }) }) } } không đồng bộ công khai savePhotoToGallery(): Promise { const ctx = getContext() const helper = photoAccessHelper.getPhotoAccessHelper(ctx) const src = ctx.resourceDir + '/icon.png' const desFileUris = đang chờ helper.showAssetsCreationDialog([src], [{ title: 'test', fileNameExtension: ' png', photoType: photoAccessHelper.PhotoType.IMAGE }]) const desFile = fs.openSync(desFileUris[0], fs.OpenMode.WRITE_ONLY) const srcFile = fs.openSync(src, fs.OpenMode.READ_ONLY) fs.copyFileSync(srcFile.fd, desFile.fd) fs. closeSync(srcFile) fs.closeSync(desFile) } }

Vui lòng lưu icon.png trong ví dụ trên để nó tồn tại cục bộ.

Cuối cùng, bài viết về việc Hongmeng lưu ảnh vào album kết thúc tại đây. Nếu bạn muốn biết thêm về việc Hongmeng lưu ảnh vào album, vui lòng tìm kiếm bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai. ! .

57 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress