Python开发安卓-Virgo开发日记(6)--横幅消息、后台消息通知(初级)

Android手机还有一个很有用的功能便是它的信息通知功能。比如网易云音乐的后台音乐播放条,类似手机管家的后台信息监控条

网易云音乐信息条

 咳咳,音乐是随便找的(雾)

总之,这属于通知的高级用法了,再普通一点,QQ来消息时的通知同样属于通知,所以这篇博客学习一下Python调用Notification进行通知的初级用法--即普通通知。

【零】效果展示

初始状态
点击按钮,发送通知

 

 

后台查看
点击消息后,跳转到指定Activity

 

【那个左上角和右边的黑色Python图标是自己找的,并不是自带的,所以如果测试请先自备素材】

同时,按下取消按钮后,将直接删除此通知,这里不再演示

【壹】API与方法介绍

此模块可能不适用于Android8.0以下的设备,毕竟国内的设备大部分都在Android 9 以上了吧,Virgo是很新的模块,所以要紧跟现在的形式,后期如果大家有需要可能会出一个兼容Android8.0以下设备的模块

[1]简单方法(为了方便大家使用,我封装好了两个方法,可以方便地实现通知功能)

from Virgo.android.core_components.NotificationManager import start_notification_jump, VNotificationManager, VNotification, create_channel

start_notification_jump:发送一条通知的函数

参数:

activity,                                              活动
channel,                                             渠道对象
channel_id,                                          渠道ID的字符串
noti_id: int,                         通知ID,保证其唯一即可,可以用于取消通知时的查找标志
new_activity_name: str,                点击通知后打开的Activity的名称
small_icon_int: str,             左上角小图标的资源数值,可用self.R.drawable["name"]获取
text: str,                                            通知内容
title: str,                                          通知题目
small_icon_name=None,    另一种设置图标方式,需要传图标名称,系统会自动去drawable目录下查找
auto_cancel=None,                                  是否点击就消失?
defaults=None,                       附加感官值,可用来设置震动、闪光等,需要对应权限
when=None,                   可用于设置通知时间,可不填;如果是立刻即可用int(time.time())
sub_text=None,                                 副内容(或者叫二级标题?)
large_icon_tuple=None,                     大图标的参数元组(图标名,activity)
vibrate=None,                         神奇的列表,可用于设置震动方式,详细看API文档sound=None,                                           提示声音名
sound_url=None,                                        提示声音网址
ongoing=None,                                         是否正在运行
progress_tuple=None,                             进度条元组(max,now,if_clear)
priority=None,                                        优先级
custom_view=None,                      设置自定义布局,后面高级内容会介绍,略过
heads_view=None,                       设置自定义布局,后面高级内容会介绍,略过
big_view=None                          设置自定义布局,后面高级内容会介绍,略过

VNotificationManager:通知管理器,里面有相关变量 + 方法

VNotification:通知类

create_channel:创建【渠道】的方法,通知将通过此方法返回的渠道对象进行发送(Android8+后引入的,)

【贰】代码解析

干讲太啰嗦,直接上代码

class NotificationActivity(ControlActivity):
    def __init__(self, APP):
        super(NotificationActivity, self).__init__("TryNF", APP)
        self.call_btn = None
        self.cancel_btn = None
        self.messages = []
        self.channel = create_channel("chat", "用于进行普通的消息",
                                      VNotificationManager.IMPORTANCE_MAX)

    def show_noti(self):
        now = int(time.time())
        start_notification_jump(self, self.channel, "chat", now,
                                "RequestsTry",
                                self.R.drawable["python"],
                                "这是一条测试信息,用于测试Python能不能控制发送notification通知栏提示",
                                f"Python测试来啦!{now}", large_icon_tuple=("python", self),
                                priority=VNotification.PRIORITY_MAX, custom_view=)
        self.messages.append(now)

    def cancel_noti(self):
        self.get_notification_manager().cancel(self.messages[-1])

    def onCreate(self, savedInstanceState):
        self.setContentView("trynf")
        self.call_btn = self.findViewById("button_call_notification")
        self.cancel_btn = self.findViewById("button_cancel_notification")
        self.call_btn.setOnClickListener(
            VOnClickListener().register_onClick(
                lambda view: self.show_noti()
            ))
        self.cancel_btn.setOnClickListener(
            VOnClickListener().register_onClick(
                lambda view: self.cancel_noti()
            ))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值