小虾米资讯

AD1
当前位置:网站首页 / android / 正文

android:FileDialog在导出为Android之后无法使用

2022-07-29 21:25:01 / 我要吐槽 查看是否已被百度收录 查看是否已被谷歌收录 查看是否已被搜狗收录 查看是否已被360收录
AD2
如图,我在导出时已经勾选了permissions/write_external_storage和permissions/read_external_storage权限。但是在安卓打开时Filedialog依然无法使用,是需要别的权限吗?

调用OS.request_permissions()弹出申请权限的窗口,读写默认是禁止的权限,需要用户授予

现在我改了一下默认路径,文件是可以显示出来了,但是我不论单击还是双击目录都没有作用,是我手机的问题还是?

目前问题已解决,下面是我总结的解决方法:FileDialog不显示的几个原因:1,默认路径不对,要设置为SD卡的路径:"/storage/emulated/0/"(我遇到的问题之一)(file_dialog.current_dir = "/storage/emulated/0/")2,权限未设置,需要在导出安卓时启用对应的权限(permissions/read_external_storage和permissions/write_external_storage)3,未请求权限,解决方法:在ready时调用OS.request_permissions()Godot自带的触屏模拟鼠标无法模拟双击,进而导致FileDialog无法打开文件夹,因此需要自己写,下面是我的解决方法:首先在项目设置里将input_devices/pointing/emulate_mouse_from_touch设为false,然后写一个脚本丢到自动加载里:var last_click := 0func _input(event):if event is InputEventScreenTouch:var ent := InputEventMouseButton.new()ent.pressed = event.pressedent.button_index = BUTTON_LEFTent.button_mask = BUTTON_LEFTent.position = event.positionent.global_position = event.positionif get_tree().get_frame() - last_click <= 5:#不一定是5,你可以根据自己的感觉来ent.doubleclick = trueInput.parse_input_event(ent)last_click = get_tree().get_frame()elif event is InputEventScreenDrag:var ent := InputEventMouseMotion.new()ent.pressed = event.pressedent.button_index = BUTTON_LEFTent.button_mask = BUTTON_LEFTent.position = event.positionent.global_position = event.positionent.relative = event.relativeent.tilt = event.tiltent.speed = event.speedent.pressure = event.pressureInput.parse_input_event(ent)这样,触屏就可以模拟双击了

Powered By © 小虾米资讯 2015

(本站部分文章来源于网络或网友爆料,不代表本站观点,如有侵权请联系及时删除 )