Python:Android 上的权限被拒绝问题

Python: Permission denied problem on Android

我只是想将来自网站的 .mp3 文件保存在 Android 上的 /storage/emulated/0/Download 文件夹中,但我总是得到 Errno 13 Permission denied

这里是示例代码:

import requests

# full path to mp3 file in website example
target_link = 'https://www.yt-download.org/download/IFtwhMK64H8/mp3/128/1630338605/f2803874069bf196561631cea2b1b11c2b1d2f9555e2baf751eb28b46d484bb5/0.mp3'

r = requests.get(target_link)

# downloading it into download folder on Android
with open('/storage/emulated/0/Download/file.mp3', 'wb') as f:
    f.write(r.content)

更新: 忘了说我用的是Kivy作为GUI框架

您肯定需要 WRITE_EXTERNAL_STORAGE 权限。 在最新的 Android 版本中,必须明确请求该权限。 然后你必须使用这样的东西:

from android.permissions import Permission, request_permissions, check_permission

def check_permissions(perms):
    for perm in perms:
        if check_permission(perm) != True:
            return False
    return True

perms = [Permission.WRITE_EXTERNAL_STORAGE, Permission.READ_EXTERNAL_STORAGE]
    
if  check_permissions(perms)!= True:
    request_permissions(perms)

这将确保您拥有所有必需的权限并且用户已明确授予它们。请注意,您必须每次都检查它们,因为用户可以在应用程序外撤销它们。

你的其余代码看起来没问题,即使我最好使用 primary_external_storage_path(),而不是提供绝对路径。