HarmonyOS App访问模拟器文件或目录问题

1、想在模拟器上测试App读取文件;发现用hdc send发的文件,App无法访问。

2、想问用hdc把文件发到模拟器的哪个地方,才允许在APP里面访问?

HarmonyOS
2024-09-09 12:01:50
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

在USER权限下hdc file send命令使用目录受限,仅限在/data/local/tmp目录下使用,App无法访问。根据需求,可以通过resourceManager访问rawFile目录下的文件发送给蓝牙设备。具体方法如下:

1.将需要发送的文件放至工程entry\src\main\resources\rawfile目录中。

2.通过resourceManager读取文件:

private context = getContext(this) as common.UIAbilityContext; 
try { 
  this.context.resourceManager.getRawFileContent("abc.json", (error: BusinessError, value: Uint8Array) => { 
    if (error != null) { 
      console.error("error is " + error); 
    } else { 
      let rawFile = value; 
    } 
  }); 
} catch (error) { 
  let code = (error as BusinessError).code; 
  let message = (error as BusinessError).message; 
  console.error(`callback getRawFileContent failed, error code: ${code}, message: ${message}.`); 
}

在使用样机的情况下,可以使用以下方法,将文件存储至文件管理中,分享到电脑上进行编辑。

let rawFile = value; 
const documentSaveOptions = new picker.DocumentSaveOptions(); 
let savedFileName = new Date().getTime() + '.json';              documentSaveOptions.newFileNames = [savedFileName]; 
const documentViewPicker = new picker.DocumentViewPicker(); 
documentViewPicker.save(documentSaveOptions).then((documentSaveResult)=>{ 
  if (documentSaveResult !== null && documentSaveResult !== undefined) { 
    console.log('documentViewPicker.save to file succeed and uris are:' + documentSaveResult[0]); 
    let newFile = fs.openSync(documentSaveResult[0], fs.OpenMode.READ_WRITE); 
    let writeLen = fs.writeSync(newFile.fd, rawFile.buffer); 
    console.log('write data to file success and size is:' + writeLen); 
  } else { 
    console.log('') 
  } 
}).catch((err:BusinessError)=>{ 
  console.log(`Invoke documentViewPicker.save to file failed, code is ${err.code}, message is ${err.message}`) 
})
分享
微博
QQ
微信
回复
2024-09-09 15:14:15
相关问题
HarmonyOS如何下载模拟器
242浏览 • 1回复 待解决
如何查看模拟器设备数据库文件
1242浏览 • 1回复 待解决
DevEco模拟器无法启动
4234浏览 • 0回复 待解决
本地模拟器时间问题有懂的吗?
2231浏览 • 1回复 待解决
HarmonyOS如何上传图片到模拟器相册
645浏览 • 1回复 待解决
最新5.0如何开启模拟器
435浏览 • 1回复 待解决
模拟器可以配置代理吗?
207浏览 • 1回复 待解决
如何监听文件文件目录的变化
1594浏览 • 1回复 待解决
HarmonyOS模拟器上使用libjsvm.so崩溃
193浏览 • 1回复 待解决
真机和模拟器安装失败
11213浏览 • 2回复 待解决
模拟器启动出错怎么回事?
2037浏览 • 1回复 待解决