diff --git a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts index 79678aff84835dcc441d26776d4b7a6c58f1f60d..f5840a716a0e79e5d751c45ba1d9a508ac946f98 100644 --- a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts +++ b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts @@ -15,33 +15,22 @@ import Extension from '@ohos.application.FileExtensionAbility' import fileio from '@ohos.fileio' import hilog from '@ohos.hilog' -import { init, addVolumeInfo, delVolumeInfo, path2uri, getVolumeInfoList } from './VolumeManager' +import { init, delVolumeInfo, getVolumeInfoList } from './VolumeManager' import { onReceiveEvent } from './Subcriber' import fileExtensionInfo from "@ohos.fileExtensionInfo" +import appManager from '@ohos.application.appManager'; const FLAG = fileExtensionInfo.FLAG; +const BUNDLE_NAME = 'com.ohos.UserFile.ExternalFileManager'; export default class FileExtAbility extends Extension { onCreate(want) { init(); onReceiveEvent(function (data) { - let parameters = data.parameters; - let flag = FLAG.SUPPORTS_WRITE | FLAG.SUPPORTS_DELETE | FLAG.SUPPORTS_RENAME | FLAG.SUPPORTS_COPY - | FLAG.SUPPORTS_MOVE | FLAG.SUPPORTS_REMOVE | FLAG.DIR_SUPPORTS_CREATE | FLAG.DIR_PREFERS_LAST_MODIFIED; if (data.event == 'usual.event.data.VOLUME_MOUNTED') { - let volumeInfo = { - 'volumeId': parameters.id, - 'fsUuid': parameters.fsUuid, - 'path': parameters.path, - 'uri': path2uri(parameters.id, parameters.path), - 'flags': flag, - 'deviceId': '', - 'displayName': parameters.id, - 'type': 'SD' - } - addVolumeInfo(volumeInfo); + appManager.killProcessesByBundleName(BUNDLE_NAME); } else { - delVolumeInfo(parameters.id); + delVolumeInfo(data.parameters.id); } }); } @@ -226,10 +215,10 @@ export default class FileExtAbility extends Extension { return { uri: sourceFileUri, fileName: this.getFileName(sourceFileUri), - mode: stat.mode, + mode: '' + stat.mode, size: stat.size, mtime: stat.mtime, - mimiType: '', + mimeType: '', }; } catch (e) { hilog.debug(0x0001, 'jsserver', 'query catch' + e); @@ -238,7 +227,6 @@ export default class FileExtAbility extends Extension { } listFile(sourceFileUri) { - let infos = []; try { let path = this.getPath(sourceFileUri); @@ -251,10 +239,10 @@ export default class FileExtAbility extends Extension { infos.push({ uri: this.genNewFileUri(sourceFileUri, dirent.name), fileName: dirent.name, - mode: stat.mode, + mode: '' + stat.mode, size: stat.size, mtime: stat.mtime, - mimiType: '', + mimeType: '', }); } catch (e) { hilog.debug(0x0001, 'jsserver', 'dir.readSync catch' + e); diff --git a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts index 10100910d3d3dd18de8ea0860c04ad81a8ef0363..b127b2f5c69e75de95fae72c916f4e0fcbfadfdc 100644 --- a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts +++ b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts @@ -24,7 +24,7 @@ const FLAG = fileExtensionInfo.FLAG; function init() { try { volumeManager.getAllVolumes().then((volumes) => { - let flag = FLAG.SUPPORTS_WRITE | FLAG.SUPPORTS_DELETE | FLAG.SUPPORTS_RENAME | FLAG.SUPPORTS_COPY + let flags = FLAG.SUPPORTS_WRITE | FLAG.SUPPORTS_DELETE | FLAG.SUPPORTS_RENAME | FLAG.SUPPORTS_COPY | FLAG.SUPPORTS_MOVE | FLAG.SUPPORTS_REMOVE | FLAG.DIR_SUPPORTS_CREATE | FLAG.DIR_PREFERS_LAST_MODIFIED; for (let i = 0; i < volumes.length; i++) { let volume = volumes[i]; @@ -32,10 +32,10 @@ function init() { 'volumeId': volume.id, 'fsUuid': volume.uuid, 'path': volume.path, - 'uri': path2uri(volume.id, volume.path), + 'uri': path2uri('', volume.path), 'displayName': volume.id, 'deviceId': '', - 'flags': flag, + 'flags': flags, 'type': 'SD' } globalThis.volumeInfoList.push(volumeInfo); @@ -52,23 +52,15 @@ function addVolumeInfo(volumeInfo) { } function path2uri(id, path) { - return `fileAccess://${id}/${path}`; + return `fileAccess://${id}${path}`; } function delVolumeInfo(volumeId) { globalThis.volumeInfoList = globalThis.volumeInfoList.filter((volume) => volume.volumeId !== volumeId); } -function getVolumeInfo(volumeId) { - let volumeInfo = globalThis.volumeInfoList.filter((volume) => volume.volumeId === volumeId); - return volumeInfo; -} - function getVolumeInfoList() { return globalThis.volumeInfoList; } -function notifyChange() { - -} export { init, addVolumeInfo, delVolumeInfo, getVolumeInfoList, path2uri } \ No newline at end of file diff --git a/services/file_extension_hap/entry/src/main/module.json b/services/file_extension_hap/entry/src/main/module.json index 20916b6afa6dc19b9080114a6bceaf8c1be1d94e..3908c63b3421cbcc5c56f8a048201758823e3c5b 100644 --- a/services/file_extension_hap/entry/src/main/module.json +++ b/services/file_extension_hap/entry/src/main/module.json @@ -20,6 +20,14 @@ "type": "fileAccess", "visible": true } + ], + "requestPermissions": [ + { + "name": "ohos.permission.CLEAN_BACKGROUND_PROCESSES" + }, + { + "name": "ohos.permission.STORAGE_MANAGER" + } ] } } \ No newline at end of file diff --git a/services/signature/fileextension.p7b b/services/signature/fileextension.p7b index ddb74239918c96a341ee6dc7d118aba46355e5d0..66b4457a8a81fb8d3356cf46d67226c850944858 100644 Binary files a/services/signature/fileextension.p7b and b/services/signature/fileextension.p7b differ