python - 在 kivy 中推送通知
问题描述
我打算使用 kivy 开发与我的一个项目相关的应用程序。但是我仍然找不到使应用程序在后台运行的方法,并且在满足某个条件时,我需要它在移动设备中显示推送通知。如何在 kivy 中添加推送通知功能?如果有人知道如何使它工作,请告诉我。(注意 - 即使应用程序在移动设备中关闭,它也应该在后台运行..)。
解决方案
我不能告诉你如何继续在后台运行(因为我也不知道),但我可以告诉你如何通知。
顺便说一句,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()
如果您不断收到错误,请看这里
推荐阅读
- python-3.x - 如何让 virtualbox python 绑定与所选的 Python 版本一起使用?
- javascript - VueJS - 如何告诉 vue DOM 中的外部变化
- python - 如何在 try 块中正确使用标识?
- javascript - 不是数字没有用firebase更新
- python - Python从子目录动态导入函数
- python - 如何在 PyInputPlus.inputStr() 函数中获取与 blockRegexes 匹配的输入值
- java - 在旧项目中从 RoboGuice 依赖注入库迁移到 Dagger2
- arrays - 使用 vuex 在对象数组上实现撤消/重做
- c# - 如何解决 UWP 中 DependencyPropertiy 加载错误的问题?
- vba - VBA 循环定义范围每 n 行