Как получить доступ к уведомлениям Android с помощью приложения Toga

Я пытаюсь создать приложение с Toga/Beeware, в основном для Android, но в идеале кроссплатформенное. Мне нужно, чтобы приложение отправляло push-уведомления в указанное пользователем время. Я вижу некоторые ранее пытались выполнить то же задание , но в настоящее время нет официальной документации. Кто-нибудь выполнил это? И если да, то как?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На этой странице есть пример вызова API уведомлений Android из Python:

        from android.content import Context
        from androidx.core.app import NotificationCompat

        builder = NotificationCompat.Builder(activity, App.DEFAULT_CHANNEL)
        builder.setSmallIcon(R.drawable.ic_launcher)
        builder.setContentTitle(
            activity.getString(R.string.demo_notify_title))
        builder.setContentText(
            activity.getString(R.string.demo_notify_text))
        activity.getSystemService(Context.NOTIFICATION_SERVICE)\
            .notify(0, builder.getNotification())

Примечания:

  • В случае с Toga activity в этом примере следует заменить на self._impl.native, где self — ваш объект App.
  • DEFAULT_CHANNEL следует настроить с помощью кода, похожего на этот.
  • Вызовы activity.getString можно заменить любой строкой, которую вы хотите.

К сожалению, если ваш targetSdkVersion 33 или выше, что сейчас имеет место с шаблоном BeeWare Android по умолчанию, вам нужно будет запросить разрешение, прежде чем показывать уведомление, и у меня нет примера Python для этого.

targetSdkVersion Начиная с августа 2023 года для Google Play потребуется версия 33 или выше. Но если вы не собираетесь распространять свое приложение в Google Play, вы можете обойти эту проблему, воспользовавшись опцией build_gradle_extra_content:

build_gradle_extra_content = "android.defaultConfig.targetSdkVersion 32"

Другие вопросы по теме