Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

安卓下载路径问题 #28

Closed
HotFlag opened this issue Sep 23, 2021 · 25 comments
Closed

安卓下载路径问题 #28

HotFlag opened this issue Sep 23, 2021 · 25 comments

Comments

@HotFlag
Copy link

HotFlag commented Sep 23, 2021

手机品牌 小米, 版本 miui12(安卓10),

1.下载的漫画不在内置SD或外置SD。保存在系统空间 /data/data/niuhuan.pikapi.

2. 导出异常, 导出时无法选择导出路径,只有storage,无法看见目录。
错误消息:


导出失败PlatformException(,open/storage/emulated/0/ 达尔文游戏-2021_09_23_11_18_26.525.zip:permission denied,,null)


1632396111929

@niuhuan
Copy link
Owner

niuhuan commented Sep 23, 2021

手机品牌 小米, 版本 miui12(安卓10),

1.下载的漫画不在内置SD或外置SD。保存在系统空间 /data/data/niuhuan.pikapi.

2. 导出异常, 导出时无法选择导出路径,只有storage,无法看见目录。
错误消息:


导出失败PlatformException(,open/storage/emulated/0/ 达尔文游戏-2021_09_23_11_18_26.525.zip:permission denied,,null)

1632396111929

您可以提供一下SD卡的路径吗,可能是安卓手机SD卡路径出错或是没有权限引起的。

Screenshot_20210924-063959_X-plore

@HotFlag
Copy link
Author

HotFlag commented Sep 26, 2021

手机品牌 小米, 版本 miui12(安卓10),
>
1.下载的漫画不在内置SD或外置SD。保存在系统空间 /data/data/niuhuan.pikapi.
>
2. 导出异常, 导出时无法选择导出路径,只有storage,无法看见目录。
错误消息:
>

导出失败PlatformException(,open/storage/emulated/0/ 达尔文游戏-2021_09_23_11_18_26.525.zip:permission denied,,null)

1632396111929

您可以提供一下SD卡的路径吗,可能是安卓手机SD卡路径出错或是没有权限引起的。

Screenshot_20210924-063959_X-plore

手机上传不了图片,我使用邮件回复了。
内置:/storage/emulated/0/
外置SD: /storage/FE4F-1DFF/
问题可能是因为没有root,无法直接访问storage目录
内置sd卡,只要授予存储权限一般都可以访问,外置sd卡需要额外授权才能访问,外置SD卡FE4F-1DFF 这个路径名称是和sd卡有关,一般格式化后会有新名字

@ #

@HotFlag
Copy link
Author

HotFlag commented Sep 26, 2021

还有一个不算问题的问题
安装时版本号不变,刚刚更新了最新版本,安装时和安装后一直是1.0.0版本
@niuhuan

@niuhuan
Copy link
Owner

niuhuan commented Sep 26, 2021

还有一个不算问题的问题
安装时版本号不变,刚刚更新了最新版本,安装时和安装后一直是1.0.0版本
@niuhuan


您无法导出的问题

  1. 我认为不是root的问题,我的程序没有申请root权限的功能,只是SD卡路径不对。

  2. 安卓手机我统一取的/storage/emulated/0/,然后因为没有内置储存卡权限, 或者其他原因没有取得文件夹的列表。

  3. 安卓没有权限取/storage下的文件夹列表,得看看api怎么取得所有的驱动器, 或者让用户输入一个路径, 解决这个问题。


版本号的问题

因为更新的比较频繁, 手动维护起来比较麻烦, 所以一直没有更新.


我如果有更新会从这里AT您一下

@HotFlag
Copy link
Author

HotFlag commented Sep 26, 2021

关于程序目录结构我觉得很奇怪, 按道理 基本上程序都会在 存储卡(内置或外置)Android/data 下创建对应程序 的目录,但是这个程序却没有,所有数据全在 /data/data/niuhuan.pikapi下

@niuhuan
Copy link
Owner

niuhuan commented Sep 26, 2021

关于程序目录结构我觉得很奇怪, 按道理 基本上程序都会在 存储卡(内置或外置)Android/data 下创建对应程序 的目录,但是这个程序却没有,所有数据全在 /data/data/niuhuan.pikapi下

在哪里是开发者定的,/data/data/程序包名 和 Android/data/程序包名 都可以存储数据,data/data不需要申请任何权限,且其他程序非root权限无法访问。

开发的时候并没有考虑内存卡的使用,现在不支持下载(缓存)目录的设定。

@niuhuan niuhuan closed this as completed Sep 29, 2021
@niuhuan niuhuan reopened this Oct 7, 2021
@niuhuan
Copy link
Owner

niuhuan commented Oct 7, 2021

@HotFlag 你现在可以尝试一下设置导出路径了, 虽然用起来不是那么灵活, 不知道是不是能解决你的问题

@HotFlag
Copy link
Author

HotFlag commented Oct 8, 2021

@HotFlag 你现在可以尝试一下设置导出路径了, 虽然用起来不是那么灵活, 不知道是不是能解决你的问题

没有用,设置了/storage/emulated/0/Download/pikapi/download,结果还是和之前一样,只显示storage

导出失败PlatformException(,mkdir/storage/emulated/0 Download/pikapi/download/Master_Piece Limite-2021_10_08_05_05_59.684:permission denied,, null)

@niuhuan
Copy link
Owner

niuhuan commented Oct 8, 2021

/storage/emulated/0/Download/pikapi/download

@HotFlag

  1. 你设置的目录也是必须是存在的 (提前建好目录)
  2. 目录必须有读写权限, 您有没有控权的软件
  3. 是不是可以尝试设置到 /storage/emulated/0/Android/niuhuan.pikapi/files ,他的包名下呢?

个人维护项目, 资金不是很充足, 没钱买额外的手机测试, 还请您见谅, 很感谢您一起完善项目。

最近在学习 ACTION_CREATE_DOCUMENT 的用法,可惜只能导出一个文件, 改造内容会比较多

@HotFlag
Copy link
Author

HotFlag commented Oct 8, 2021

/storage/emulated/0/Download/pikapi/download

@HotFlag

  1. 你设置的目录也是必须是存在的 (提前建好目录)
  2. 目录必须有读写权限, 您有没有控权的软件
  3. 是不是可以尝试设置到 /storage/emulated/0/Android/niuhuan.pikapi/files ,他的包名下呢?

个人维护项目, 资金不是很充足, 没钱买额外的手机测试, 还请您见谅, 很感谢您一起完善项目。

最近在学习 ACTION_CREATE_DOCUMENT 的用法,可惜只能导出一个文件, 改造内容会比较多

设置/storage/emulated/0/Android/data/niuhuan.pikapi/ 可以导出,相近目录不可以导出。

下载目录可以也提供一下自定义目录设置吗?

@HotFlag
Copy link
Author

HotFlag commented Oct 9, 2021

我使用软链接,把下载目录链接到了外置sd卡/Android/data/niuhuan.pikapi目录下 可以下载与查看

@TenmaSennpai
Copy link

我也出现了这个问题

1.我也是小米手机,MIUI12.5,Android 11,权限基本上都已经给了

2.我现在可以导出到/sdcard/download/以及它的任何子目录,但是除此之外的/sdcard/以及它的子目录均不行,导出失败的报错和楼主是相同的

3.我想直接导出到/sdcard/下的一个自定义目录

4.我注意到作者没有写android.permission.WRITE_INTERNAL_STORAGE这条语句,还有就是我知道的那些可以正常访问内置存储目录的软件基本上都有在/sdcard/Android/data中,同时也在/data/data里,但是这个软件只在/data/data里

5.顺带一提,/sdcard/是和/storage/emulated/0/在MIUI里是一样的,都是内置存储。

@niuhuan
Copy link
Owner

niuhuan commented Oct 13, 2021

我也出现了这个问题

1.我也是小米手机,MIUI12.5,Android 11,权限基本上都已经给了

2.我现在可以导出到/sdcard/download/以及它的任何子目录,但是除此之外的/sdcard/以及它的子目录均不行,导出失败的报错和楼主是相同的

3.我想直接导出到/sdcard/下的一个自定义目录

4.我注意到作者没有写android.permission.WRITE_INTERNAL_STORAGE这条语句,还有就是我知道的那些可以正常访问内置存储目录的软件基本上都有在/sdcard/Android/data中,同时也在/data/data里,但是这个软件只在/data/data里

5.顺带一提,/sdcard/是和/storage/emulated/0/在MIUI里是一样的,都是内置存储。

我在最新的release里面追加了 android.permission.WRITE_INTERNAL_STORAGE
@TenmaSennpai @HotFlag

可以下载尝试一下

@niuhuan
Copy link
Owner

niuhuan commented Oct 13, 2021

我觉得加了这个,并没有解决问题,依然只能导出到download文件夹。我使用安卓10可以列出目录,只能导出到Dowload。低版本安卓似乎没有问题

@HotFlag
Copy link
Author

HotFlag commented Oct 13, 2021

我觉得加了这个,并没有解决问题,依然只能导出到download文件夹。我使用安卓10可以列出目录,只能导出到Dowload。低版本安卓似乎没有问题

依旧不能
虽然加了权限,但是没有申请,导致和没有加一样

@abc7752043
Copy link

abc7752043 commented Oct 13, 2021

这个问题其实是Google对Android API的限制引起的(分区存储,见Android开发官网介绍:https://developer.android.google.cn/training/data-storage/use-cases#opt-out-scoped-storage )。在Android10及以上版本中,是不允许申请外部存储写权限的(android.permission.WRITE_EXTERNAL_STORAGE),而路径/storage/emulated/0/就是属于外部存储空间,因此往外部写入数据都会被拒绝。正确的做法应该是使用媒体库API(MediaStore),可以参考链接:https://www.jianshu.com/p/e5cfcc65e708 。当然,如果不做高版本适配也可以在Manifest文件中的application标签下添加requestLegacyExternalStorage=true属性,并把targetSdkVersion 设备29及以下,现有的代码就能以兼容模式运行。 @niuhuan

@niuhuan
Copy link
Owner

niuhuan commented Oct 13, 2021

我觉得加了这个,并没有解决问题,依然只能导出到download文件夹。我使用安卓10可以列出目录,只能导出到Dowload。低版本安卓似乎没有问题

依旧不能 虽然加了权限,但是没有申请,导致和没有加一样

不知道你能不能导出到 /storage/emulated/0/Download 。

楼上所说
android.permission.WRITE_EXTERNAL_STORAGE
在安卓10以及以上就不再支持,11以上兼容模式也会关闭。

导出单文件需要调起系统自带的文件选择器,可以让用户选择文件储存位置。

导出带有html多文件只能在download下面

还需要一个批量导出到相册的功能。

@HotFlag

@HotFlag
Copy link
Author

HotFlag commented Oct 14, 2021

我觉得加了这个,并没有解决问题,依然只能导出到download文件夹。我使用安卓10可以列出目录,只能导出到Dowload。低版本安卓似乎没有问题

依旧不能 虽然加了权限,但是没有申请,导致和没有加一样

不知道你能不能导出到 /storage/emulated/0/Download 。

楼上所说 android.permission.WRITE_EXTERNAL_STORAGE 在安卓10以及以上就不再支持,11以上兼容模式也会关闭。

导出单文件需要调起系统自带的文件选择器,可以让用户选择文件储存位置。

导出带有html多文件只能在download下面

还需要一个批量导出到相册的功能。

@HotFlag

试过了不可以导出失败PlatformException(,mkdir/storage/emulated/0/ Download/DLManager/羲妹性夕么以一才依存 症-2021_10_14_04_33_53.071:permission denied,,null)

@TenmaSennpai
Copy link

我觉得加了这个,并没有解决问题,依然只能导出到download文件夹。我使用安卓10可以列出目录,只能导出到Dowload。低版本安卓似乎没有问题

依旧不能 虽然加了权限,但是没有申请,导致和没有加一样

不知道你能不能导出到 /storage/emulated/0/Download 。
楼上所说 android.permission.WRITE_EXTERNAL_STORAGE 在安卓10以及以上就不再支持,11以上兼容模式也会关闭。
导出单文件需要调起系统自带的文件选择器,可以让用户选择文件储存位置。
导出带有html多文件只能在download下面
还需要一个批量导出到相册的功能。
@HotFlag

试过了不可以导出失败PlatformException(,mkdir/storage/emulated/0/ Download/DLManager/羲妹性夕么以一才依存 症-2021_10_14_04_33_53.071:permission denied,,null)

你自己在Download新建一个文件夹试试,别用别的app建立的文件夹

@niuhuan
Copy link
Owner

niuhuan commented Oct 14, 2021

根据 @abc7752043 的思路
我想我在v1.1.3解决这个问题,至少我的安卓10,11虚拟机,安卓10的手机都没有问题。

@HotFlag @TenmaSennpai

@HotFlag
Copy link
Author

HotFlag commented Oct 14, 2021

根据 @abc7752043 的思路 我想我在v1.1.3解决这个问题,至少我的安卓10,11虚拟机,安卓10的手机都没有问题。

@HotFlag @TenmaSennpai

可以导出了😊
有空可以加个自定义下载路径的选项吗

@niuhuan
Copy link
Owner

niuhuan commented Oct 14, 2021

根据 @abc7752043 的思路 我想我在v1.1.3解决这个问题,至少我的安卓10,11虚拟机,安卓10的手机都没有问题。
@HotFlag @TenmaSennpai

可以导出了😊 有空可以加个自定义下载路径的选项吗

你的本意是把内容迁移到外置储存卡,而不占手机体积吗?

@HotFlag
Copy link
Author

HotFlag commented Oct 14, 2021

根据 @abc7752043 的思路 我想我在v1.1.3解决这个问题,至少我的安卓10,11虚拟机,安卓10的手机都没有问题。
@HotFlag @TenmaSennpai

可以导出了blush 有空可以加个自定义下载路径的选项吗

你的本意是把内容迁移到外置储存卡,而不占手机体积吗?
内置空间比较小,外置空间大。以前使用官方APP的时候只能下载内置sd,由于东西多加上没有时间看,导致越积越多,20G,最后内存空间不足 ,只能删了

@niuhuan
Copy link
Owner

niuhuan commented Oct 18, 2021

@HotFlag 你可以下载v1.1.5试试,在虚拟机上试过可以换到SD卡

@HotFlag
Copy link
Author

HotFlag commented Oct 18, 2021

@HotFlag 你可以下载v1.1.5试试,在虚拟机上试过可以换到SD卡

可以了😊

@HotFlag HotFlag closed this as completed Oct 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants