如何解决python kivy中android 10存储权限被拒绝的问题

问题描述 投票:0回答:2

我是新来的。最近我正在开发基于Python Kivy的android应用程序。我的应用程序是从 Instagram 下载帖子并将其保存在 Android 本地存储中。它在我的 Android(带有 Android 8.1 的 Oppo A3s)中工作正常,但是当我在我朋友的手机(比我的 Android 版本更新(Android 10))上测试它时,它失败了。当我运行 adb 时,它说权限被拒绝。我想知道并在互联网上找到解决方案,他们说 android 10 及更高版本不允许直接写入存储(例如:/sdcard/DCIM/Camera)

我的问题是:如何解决这个问题以及如何在 android 10 中将文件写入 /sdcard/DCIM/Camera ?或者如何将文件保存在公共存储中,以便其他应用程序也可以使用该文件?

非常感谢您的帮助:)

python android kivy
2个回答
0
投票

所以如果你的应用程序是由 kivy 或 kivymd 制作的 要启用对 Android 10 内部存储的访问,请获取编译后的 apk,使用 -

apktool
使用
-apktool d <APK name>
反编译它,然后打开它的
AndroidManifest.xml
文件并在
requestLegacyExternalStorage="true"
> 标签中添加
<application
,如下所示

<manifest ... >
  <!-- This attribute is "false" by default on apps targeting
       Android 10. -->
  <application android:requestLegacyExternalStorage="true" ... >
    ...
  </application>
</manifest>

然后使用

apktool b <name of folder with decompiled files>
重新编译,使用 apksigner 对 APK 进行签名,这样就可以了

请记住,对新编译的 apk 进行签名很重要,编译后的 APK 可以在包含反编译文件的文件夹中的 dist 子文件夹中找到


0
投票

感谢您检查它是否有效

© www.soinside.com 2019 - 2024. All rights reserved.