Какое разрешение Android необходимо для сохранения файлов? - PullRequest
0 голосов
/ 14 июля 2020

Я создал приложение под названием Paint Maker Pro с кодом Kivy и Python, и теперь оно есть в магазине Google Play. Мне говорили, что функция Save as JPEG не работает. И это правда. Я хочу, чтобы пользователь мог сохранять свою работу, чтобы поделиться ею с другими людьми. И когда пользователь нажимает кнопку Save as JPEG, рисунок сохраняется в текущем рабочем каталоге Linux и Windows. Однако на Android приложение сообщает, что рисунок был сохранен, но не сохраняется. Вот код, который я использовал:

# IMPORTS AND A LOT OF OTHER CODE
def save_canvas(self, for_kivy):
    filename = datetime.now().strftime('PMP_Drawing_at_%a_%b_%d_%I:%M:%S:%f_%p_%Y.jpg')
    self.root.export_as_image().save(filename)
    self.btn_col = (uniform(0, 1), uniform(0, 1), uniform(0, 1), 1)
    self.save_btn_jpg.background_color = self.btn_col
    self.clear_btn.background_color = self.btn_col
    self.select_col_btn.background_color = self.btn_col
    self.erase_btn.background_color = self.btn_col
    self.pt_10.background_color = self.btn_col
    self.pt_20.background_color = self.btn_col
    self.pt_30.background_color = self.btn_col
    self.pt_40.background_color = self.btn_col
    self.pt_50.background_color = self.btn_col
    self.pt_60.background_color = self.btn_col
    self.rec_btn.background_color = self.btn_col
    self.cir_btn.background_color = self.btn_col
    popup.pop(filename, Label(text='Drawing saved at:\n' +
                              getcwd() + '.', font_size=self.font_15))

Я почти уверен, что это из-за ошибки разрешения Android. Так кто-нибудь знает, какое разрешение я должен использовать? Я уже пробовал WRITE_EXTERNAL_STORAGE.

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Вы уверены, что приняли разрешение, запросив его из приложения, а не из Manifest?

Надеюсь, вы сможете проверить правильность разрешения в информации приложения.

WRITE_EXTERNAL_STORAGE - это вправо

0 голосов
/ 31 июля 2020

Я исправил свое приложение, но если кто-то не знал, как использовать особые разрешения, вот как:

from kivy.utils import platform
from android.permissions import request_permissions, Permission
# Android module doesn't have to be installed because it will automatically get
# included in the APK
# ------ OTHER IMPORTS ------

# ------ APP CODE ------

if __name__ in ['__android__', '__main__']:
 if platform == 'android':
  request_permissions([Permission.WRITE_EXTERNAL_STORAGE, ...]) # All permissions your app requires
 # ------ RUN APP ------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...