首页 > 解决方案 > 在 kivy 中推送通知

问题描述

我打算使用 kivy 开发与我的一个项目相关的应用程序。但是我仍然找不到使应用程序在后台运行的方法,并且在满足某个条件时,我需要它在移动设备中显示推送通知。如何在 kivy 中添加推送通知功能?如果有人知道如何使它工作,请告诉我。(注意 - 即使应用程序在移动设备中关闭,它也应该在后台运行..)。

标签: pythonkivy

解决方案


我不能告诉你如何继续在后台运行(因为我也不知道),但我可以告诉你如何通知。

顺便说一句,plyer 在 android 上的效果不如 windows,所以你应该用 java lib jnius 抛出

代码在这里:

from kivy.app import App
from kivy.uix.button import Button
from jnius import autoclass

def notify(*args):
    AndroidString = autoclass('java.lang.String')
    PythonActivity = autoclass('org.kivy.android.PythonActivity')
    NotificationBuilder = autoclass('android.app.Notification$Builder')
    Context = autoclass('android.content.Context')
    Drawable = autoclass('org.test.notify.R$drawable')
    icon = Drawable.icon
    notification_builder = NotificationBuilder(PythonActivity.mActivity)
    notification_builder.setContentTitle(AndroidString('Title'.encode('utf-8')))
    notification_builder.setContentText(AndroidString('Message'.encode('utf-8')))
    notification_builder.setSmallIcon(icon)
    notification_builder.setAutoCancel(True)
    notification_service = notification_service = PythonActivity.mActivity.getSystemService(Context.NOTIFICATION_SERVICE)
    notification_service.notify(0,notification_builder.build())

class NotifyApp(App):
    def build(self):
    return Button(text="notify", on_press=notify)

if __name__ == '__main__':
    NotifyApp().run()

如果您不断收到错误,请看这里


推荐阅读