python 如何使用Toga应用程序访问Android通知

pdkcd3nj  于 2023-04-10  发布在  Python
关注(0)|答案(1)|浏览(162)

我试图建立一个应用程序与Toga/Beeware,主要是为Android但理想的跨平台.我需要该应用程序在用户指定的时间发送推送通知.我看到some have previously attempted the same challenge,但there's currently no official documentation.有人完成了这一点吗?如果是这样,如何?

ie3xauqp

ie3xauqp1#

本页提供了从Python调用Android通知API的示例:

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,其中selfApp对象。
  • DEFAULT_CHANNEL应该使用类似于此的代码进行设置。
  • activity.getString调用可以替换为您想要的任何字符串。

不幸的是,如果你的targetSdkVersion是33或更高,这是现在默认的BeeWare Android模板的情况,你需要在显示通知之前请求许可,我没有一个Python示例。
自2023年8月起,Google Play将要求targetSdkVersion 33或更高版本。但如果您不打算在Google Play上分发应用,则可以使用build_gradle_extra_content选项解决此问题:

build_gradle_extra_content = "android.defaultConfig.targetSdkVersion 32"

相关问题