如何使用Toga应用访问Android通知



我正试图建立一个应用程序与Toga/Beeware,主要为Android,但理想的跨平台。我需要应用程序发送推送通知在用户指定的时间。我看到一些人之前尝试过同样的挑战,但目前没有官方文件。有人做到了吗?如果有,是怎么做到的?

这个页面有一个从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,其中self是您的App对象。
  • DEFAULT_CHANNEL应该用类似的代码设置。
  • activity.getString调用可以替换为任何你想要的字符串

不幸的是,如果你的targetSdkVersion是33或更高,这是现在默认的BeeWare Android模板的情况下,你需要在显示通知之前请求许可,我没有Python的例子。

从2023年8月开始,Google Play将要求targetSdkVersion33或更高版本。但如果你不打算在Google Play上发布应用,你可以通过使用build_gradle_extra_content选项来解决这个问题:

build_gradle_extra_content = "android.defaultConfig.targetSdkVersion 32"

相关内容

  • 没有找到相关文章

最新更新