Это каталог: /storage/emulated/0
Я получаю следующую ошибку: [Errno 1] Операция не разрешена: '/storage/emulated/0/test.txt'
Я спрашиваю для разрешений в коде, но разрешения не запрашивается при запуске или установке приложения.
Вот код;
Код: Выделить всё
import kivy
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.utils import platform
import os
class MyGridLayout(GridLayout):
def __init__(self, **kwargs):
super(MyGridLayout, self).__init__(**kwargs)
self.cols = 1
self.dir_button = Button(text="Show Directory")
self.dir_button.bind(on_press=self.press_dir)
self.add_widget(self.dir_button)
self.write_button = Button(text="Write File")
self.write_button.bind(on_press=self.press_write)
self.add_widget(self.write_button)
self.text_field = TextInput(multiline=True)
self.add_widget(self.text_field)
def press_dir(self, instance):
if platform == 'android':
from android.storage import primary_external_storage_path
self.file_dir = primary_external_storage_path()
else:
self.file_dir = App.get_running_app().user_data_dir
if not os.path.exists(self.file_dir):
os.mkdir(self.file_dir)
self.text_field.text = self.file_dir
def press_write(self, instance):
self.file_name = "test.txt"
self.full_name = os.path.join(self.file_dir, self.file_name)
try:
with open(self.full_name, "w") as outfile:
outfile.write("Hello World")
except Exception as e:
self.text_field.text = str(e)
class TestWriteApp(App):
def build(self):
return MyGridLayout()
if platform == 'android':
from android.permissions import request_permissions, Permission
request_permissions([Permission.WRITE_EXTERNAL_STORAGE,
Permission.READ_EXTERNAL_STORAGE])
testwriteapp = TestWriteApp()
testwriteapp.run()
Кнопка «Показать каталог»
введите здесь описание изображения
Кнопка «Записать файл»
введите здесь описание изображения
Спасибо за помощь.
Я попробовал несколько вещей...добавил разрешения в файл buildozer.spec, изменение местоположения вывода на внутренний user_data_dir (думаю, это сработало, но Мне нужно, чтобы пользователь мог использовать приложение «Файлы» для получения сгенерированного файла)
Подробнее здесь: https://stackoverflow.com/questions/763 ... te-to-stor