Kivy 使用 Android 通知

Posted

技术标签:

【中文标题】Kivy 使用 Android 通知【英文标题】:Kivy use Android Notifications 【发布时间】:2014-06-06 19:02:39 【问题描述】:

是否可以使用 python 和/或 kivy 在 ios 上发送本地通知?实际上它不必振动,只需一个数字图标和实时消息即可。

编辑:

从 cmets 看来,Pyobjus 似乎能够做到这一点,但我不确定如何。

啊!我的梦想破灭了。我的 hackintosh 还没有完成,pybojus 需要一个 mac!所以看起来这将是一个 android 应用程序。但我仍然不知道该怎么做。

【问题讨论】:

当然可以;推送通知只是一种沟通形式。这就像问 Python 和 Kivy 是否可以做 HTTP。你在这里没有真正提供足够的信息。您是指苹果推送通知服务吗?如果是这样,您可能只需要使用本机 API。在 Android 上,我们使用 pyjnius 调用本机 Java 代码——我假设 iOS 上的 Kivy 也有类似的东西。 en.wikipedia.org/wiki/Push_technologyen.wikipedia.org/wiki/Apple_Push_Notification_Servicedeveloper.apple.com/library/ios/documentation/… 您仍然很可能需要使用 pyobjus。 pyobjus.readthedocs.org/en/latest 基本上,您将加载任何需要的框架,然后使用 autoclass 为 ObjC 类创建 Python 代理,并像在 ObjC iOS 应用程序中一样调用方法。 该错误是由app_icon = Drawable.icon引起的,这里是解决方法***.com/a/69307364 【参考方案1】:

既然你已经把话题改到安卓了……我可以帮忙!

Kivy 有一个姊妹项目plyer,它提供了一种独立于平台的方式来通过单个 pythonic 接口访问不同的 api。 Android 实现了很多接口,包括通知,因此您可以直接使用 plyer 和/或查看代码以了解其工作原理。

碰巧我之前制作了一个关于 android 的短视频,你可以找到 here。这只是一个非常快速的介绍,但可能会有所帮助。

【讨论】:

哇,kivy好像有很多姐妹项目ahem,python-for-android,ahem 很好,我不知道这个。我刚刚编写了自己的 Java 代码来使用振动和通知。 :D 我很快就会尝试这个,但我在设置时遇到了问题!你是如何安装plyer的?它显然取决于 pyjnius 但是当我运行 setup.py 我得到Unable to determine JDK_HOME 但 JDK_HOME 变量已设置!输入 echo $JDK_HOME 产生 /usr/usr/lib/jvm/java-7-openjdk-amd64 你是如何尝试使用它的?在安卓上? 我正在尝试将其安装在 linux 上,Ubuntu 12.04 LTS,以便为 android 开发。【参考方案2】:

我希望这会对你有所帮助。

import kivy.app
import plyer

class PushNotificationApp(kivy.app.App):
    def show_notification(self):
        plyer.notification.notify(title='test', message="Notification using plyer")

app = PushNotificationApp()
app.run()

【讨论】:

嗨,我正在尝试使用 plyer 为 android 应用程序实现通知。它在我的笔记本电脑上运行良好,我正在接收通知,但是当我使用 buildozer 为 android 构建它时,每当执行通知行时,应用程序就会崩溃......我不知道是什么问题,你能帮忙吗!

以上是关于Kivy 使用 Android 通知的主要内容,如果未能解决你的问题,请参考以下文章

Kivy:使用按钮制作持久通知

Kivy:跨平台通知图标

Python Kivy/Pyjnius android NotificationListenerService

kivy & plyer 通知错误

Kivy Launcher:应用程序因 NameError 崩溃:未定义全局名称“autoclass”

kivy:适用于 android + C++ 的 python