Я попробовал несколько способов создать каталог в документах с использованием Kivy (jicsingapp, для сохранения предыдущих данных), но каким -то образом кажется, что ни один из них не является правильным, я всегда получаю ошибку: [Errno 13] разрешение отказано. Я был бы признателен, если бы кто -то мог бы помочь мне с этой проблемой. Я также получаю сообщение об ошибке, если создаю простой файл. Если я вручную даю разрешение, программа работает без ошибки.
Я попробовал несколько способов создать каталог в документах с использованием Kivy (jicsingapp, для сохранения предыдущих данных), но каким -то образом кажется, что ни один из них не является правильным, я всегда получаю ошибку: [Errno 13] разрешение отказано. Я был бы признателен, если бы кто -то мог бы помочь мне с этой проблемой. Я также получаю сообщение об ошибке, если создаю простой файл. Если я вручную даю разрешение, программа работает без ошибки.[code]#.... from kivy.utils import platform from kivy.logger import Logger from jnius import autoclass from plyer import storagepath
...
if platform == 'android': from android.permissions import request_permissions, Permission, check_permission from android.storage import app_storage_path, primary_external_storage_path, secondary_external_storage_path
if not app_folder.exists(): if app_folder.mkdirs(): print(f"Directory {app_folder.getAbsolutePath()} created") return app_folder.getAbsolutePath() else: raise PermissionError(f"Failed to create directory:{app_folder.getAbsolutePath()}") else: print(f"Directory {app_folder.getAbsolutePath()} already exists") return app_folder.getAbsolutePath()
def get_store(self): json_file_path = None
if platform == 'android': app_directory = app_storage_path() try: # Call the method to create app directory app_directory = self.create_app_directory() print(f"App directory created at: {app_directory}") except Exception as e: print(f"Encountered error during directory creation: {e}") try: # Call the method to create app directory app_directory = os.path.join(storagepath.get_home_dir(), 'JiCsingApp') if not os.path.exists(app_directory): os.mkdir(app_directory) except Exception as e: print(f"Encountered error during directory creation: {e}") json_file_path = os.path.join(app_directory, 'prophecies.json') else: # For other platforms (Windows, MacOS, Linux) json_file_path = 'prophecies.json'
Logger.info(f"Using JSON store at: {json_file_path}") return JsonStore(json_file_path) def on_start(self): # Call the initialize_images method when the app starts if not self.check_storage_permission(): self.request_android_permissions() self.initialize_images()
def check_storage_permission(self): # Check if the necessary permissions are already granted return (check_permission(Permission.WRITE_EXTERNAL_STORAGE) and check_permission(Permission.READ_EXTERNAL_STORAGE))
< /code> И вот мой файл buildozer.spec (соответствующие детали, насколько я знаю): < /p> requirements = plyer, jnius, kivy, https://github.com/kivymd/kivymd/archive/master.zip ...
...
# (list) Permissions # (See https://python-for-android.readthedocs.io/en/latest/buildoptions/#build-options-1 for all the supported syntaxes and properties) # android.permissions = android.permission.INTERNET, (name=android.permission.WRITE_EXTERNAL_STORAGE;maxSdkVersion=18) android.permissions = android.permission.INTERNET, android.permission.WRITE_EXTERNAL_STORAGE,android.permission.READ_EXTERNAL_STORAGE, android.permission.MANAGE_EXTERNAL_STORAGE
[/code] Спасибо за всех, кто может помочь заранее!
Мое приложение использует платформу ImageCaptureCore для связи с внешней зеркальной камерой. Когда я подключаю свое устройство к камере, я выполняю requestContentsAuthorization(completion:) для запроса доступа к файлам на подключенных камерах. Это...