当前位置: 首页 > news >正文

百度网站抓取时间查询江苏中南建设投标网站

百度网站抓取时间查询,江苏中南建设投标网站,网上投资网站建设,自己做的微课上传到哪个网站Android 12.0 通知简介https://blog.csdn.net/Smile_729day/article/details/135502031?spm1001.2014.3001.5502 1. 需求 在系统内置应用中或者在第三方应用中,获取Android系统收到的通知的内容. 2. NotificationListenerService 接口 Android 系统预留了专门的API, 即 No… Android 12.0 通知简介https://blog.csdn.net/Smile_729day/article/details/135502031?spm1001.2014.3001.5502  1. 需求 在系统内置应用中或者在第三方应用中,获取Android系统收到的通知的内容. 2. NotificationListenerService 接口 Android 系统预留了专门的API, 即 NotificationListenerService 接口,它的源码路径为: 源码路径 : /frameworks/base/core/java/android/service/notification/NotificationListenerService.javapublic abstract class NotificationListenerService extends Service {...... 3. 实现 NotificationListenerService NotificationListenerService 是抽象类,通过在 Service 中实现该抽象类,并实现需要的接口,代码如下: public class MyNotificationListenerService extends NotificationListenerService {//当系统收到新的通知时,会触发该接口Overridepublic void onNotificationPosted(StatusBarNotification sbn) {addAlienNotificationInfo(sbn); //获取通知的内容}//当系统移除通知时,即在通知列表中清除通知时,或者卸载应用时,该应用包名下的通知都会被清除,也同样会会触发该接口Overridepublic void onNotificationRemoved(StatusBarNotification sbn) {super.onNotificationRemoved(sbn);} } 上面两个接口,第一个是监听系统新通知,第二个是监听系统通知清除,如果看过Android Systemui 中有关通知的内容,就会发现,System UI 对通知的显示和通知的清除,同样也是继承该API 下面分析当系统收到新通知时如何解析出通知里的内容 . 获取通知内容 private void addAlienNotificationInfo(StatusBarNotification sbn) {String packageName sbn.getPackageName();//获取发送通知的包名Notification notification sbn.getNotification(); //获得一个Notification对象Bundle extras notification.extras;RemoteViews contentView notification.contentView;//ApplicationInfo appInfo extras.getParcelable(NotificationCompat.EXTRA_BUILDER_APPLICATION_INFO);//如果是系统内置应用,可以获取到ApplicationInfo ,后面会有解释//String appName appInfo.loadLabel(mPm).toString(); //如果是系统内置的应用,可以通过ApplicationInfo对象获取通知发送这条通知的应用名String category notification.category;String channelId notification.getChannelId();//String className getNotificationClassName(notification);//如果是系统内置应用,可以获取到通知中设置的Intent,后面会有解释int color notification.color;//通知setColor()设置的颜色boolean defaultVibrate (notification.vibrate null) ? true : false;String notificationVibrationString Arrays.toString(notification.vibrate);int importance notification.priority; //通知的重要性String key sbn.getKey();//通知的Key,删除通知时,需要通过Key来确定删除哪条通知Icon myLargeIconToIcon extras.getParcelable(Notification.EXTRA_LARGE_ICON);//获取通知设置的大图片,即setLargeIcon() ,int ledColor notification.ledARGB;//通知led灯颜色String sound (notification.sound ! null) ? notification.sound.toString() : null;int progress extras.getInt(Notification.EXTRA_PROGRESS);//当前进度值int progressMax extras.getInt(Notification.EXTRA_PROGRESS_MAX);//设定的最大进度值boolean progressIndeterminate extras.getBoolean(Notification.EXTRA_PROGRESS_INDETERMINATE);//是否在通知中显示进度值int flagsToCheck Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;boolean resident (notification.flags flagsToCheck) ! 0;//是否是常驻通知(前台onging),类似于音乐应用,String smallIcon notification.getSmallIcon().toString();//通知设置的smallIcon()String title (String) extras.get(Notification.EXTRA_TITLE);//通知标题String subText (String) extras.get(Notification.EXTRA_SUB_TEXT);//通知附加内容String text (String) extras.get(Notification.EXTRA_TEXT);//通知内容boolean userRemovable (notification.flags Notification.FLAG_AUTO_CANCEL) ! 0; //是否可移除通知,即 setAutoCancel(boolean autoCancel) 中设定的值long when notification.when;//通知的时间String template getNotificationTemplate(notification);//获取通知的类型,下面会详细介绍//BigTextStyle通知中,bigText的内容String bigText (String) extras.getCharSequence(Notification.EXTRA_BIG_TEXT); //BigPictureStyle通知中设置的大图片Bitmap picture_extraBitmap extras.getParcelable(Notification.EXTRA_PICTURE);//状态栏通知列表中,折叠时是否显示图片,注意:该属性在Android12上有,Android11上没有,boolean mShowBigPictureWhenCollapsed extras.getBoolean(Notification.EXTRA_SHOW_BIG_PICTURE_WHEN_COLLASED);//通过下面的方法也可以查看通知中的设置的全部参数for(String mykey : notification.extras.keySet()){String ex mykey notification.extras.get(mykey) ;;Log.d(TAG,exex);} } (1) 获取ApplicationInfo 上面在获取通知的ApplicationInfo时,使用了 Notification.EXTRA_BUILDER_APPLICATION_INFO,该值不对系统外开放,如下源码所示: 源码路径:/frameworks/base/core/java/android/app/Notification.java/*** hide*/public static final String EXTRA_BUILDER_APPLICATION_INFO android.appInfo; (2) getNotificationClassName(notification) 上面还涉及到了getNotificationClassName(notification) 获取这条通知中通过PendingIntent中设置的 Intent ,方法中用到了不对外使用的方法,代码如下: private String getNotificationClassName(Notification notification) {if (notification.contentIntent ! null) {Intent intent notification.contentIntent.getIntent();if (intent ! null intent.getComponent() ! null) {return intent.getComponent().getClassName();}}return null;} (3) 获取 PendingIntent 对象 其中的 notification.contentIntent 是获取 通知中的 PendingIntent 对象,源码如下: 源码路径:/frameworks/base/core/java/android/app/Notification.java /*** 单击展开的状态条目时要执行的意图。*/public PendingIntent contentIntent; (4) PendingIntent.getIntent() 接着再通过调用 PendingIntent 对象中的 getIntent() 来获取通知中设定的 Intent, 源码如下: 源码路径: /frameworks/base/core/java/android/app/PendingIntent.java/*** hide (该方法不对外公开)* 返回 PendingIntent 中的 Intent .*/UnsupportedAppUsagepublic Intent getIntent() {try {return ActivityManager.getService().getIntentForIntentSender(mTarget);} catch (RemoteException e) {throw e.rethrowFromSystemServer();}} 由于源码中有hide,表明该方法不对第三方应用开放,所以如果是系统内置的应用,则可以使用. (5) getNotificationTemplate(Notification notification)  Android中定义了一些通知模板,常用的如: BigPictureStyle , BigTextStyle 等,代码如下: /*** 返回通知的类型,如果没有使用,则返回null.* 返回的类型,如: android.app.Notification$BigTextStyle,* 因此需要对字符串进行截取,如最后返回: BigTextStyle */private String getNotificationTemplate(Notification notification) {String template notification.extras.getString(Notification.EXTRA_TEMPLATE);if (template ! null) {int indexOf template.indexOf($);return template.substring(indexOf 1);}return null;} 5. 通知的清除  当通知被清除时,会调用 onNotificationRemoved(StatusBarNotification sbn) 方法,其中的参数 sbn 代表被删除的通知.可以在该方法里做一些删除后的工作. 6 . NotificationListenerService 中其他有用的方法 (1) 获取有效的通知 : getActiveNotifications()  源码路径: /frameworks/base/core/java/android/service/notification/NotificationListenerService.java/*** 请求未完成通知的列表即那些对当前用户。** return 活动通知数组按自然顺序排序。*/public StatusBarNotification[] getActiveNotifications() {StatusBarNotification[] activeNotifications getActiveNotifications(null, TRIM_FULL);return activeNotifications ! null ? activeNotifications : new StatusBarNotification[0];} (2) 删除指定单条通知 : cancelNotification(String key)    源码路径: /frameworks/base/core/java/android/service/notification/NotificationListenerService.java /*** 删除指定的一条通知**/public final void cancelNotification(String key) {if (!isBound()) return;//是否绑定了NotificationListenerService服务try {getNotificationInterface().cancelNotificationsFromListener(mWrapper,new String[] { key });} catch (android.os.RemoteException ex) {Log.v(TAG, Unable to contact notification manager, ex);}} (3) 删除指定的多条通知: cancelNotifications(String[] keys) 源码路径: /frameworks/base/core/java/android/service/notification/NotificationListenerService.java /*** 删除 数组 keys 中指定key的通知*/public final void cancelNotifications(String[] keys) {if (!isBound()) return;try {getNotificationInterface().cancelNotificationsFromListener(mWrapper, keys);} catch (android.os.RemoteException ex) {Log.v(TAG, Unable to contact notification manager, ex);}}(4) 清除所有通知,对应于通知列表下的 清除所有通知的按钮功能: cancelAllNotifications() /*** 通知通知管理器清除所有通知* 类似于Android状态栏和通知面板调用 UI 的“全部关闭”功能* 收到通知后通知管理器实际上会删除所有活动通知* 并且收到多个 {link #onNotificationRemoved(StatusBarNotification)} 回调。*/public final void cancelAllNotifications() {cancelNotifications(null /*all*/);} 至此,关于监听系统通知介绍完毕,谢谢观看!
http://www.zqtcl.cn/news/195465/

相关文章:

  • 360网站制作潍坊医疗网站建设方案
  • 深圳网站策划公司域名解析暂时失败
  • 怎么做安居客网站wordpress 函数文件
  • 微名片网站怎么做html代码表示
  • 两学一做纪实评价系统网站如何做好百度推广
  • 网站设置手机才能播放企业网站开发需求
  • 网站建设微信运营销售做网站用啥语言
  • dw建设网站步骤活动汪活动策划网站
  • 民和县公司网站建设网站开发的特点
  • 模板企业快速建站上传网站中ftp地址写什么
  • 云南本地企业做网站太原网站制作公司哪家好
  • 西部数码域名网站模板wordpress抓取股票行情
  • 丰台深圳网站建设公司关于服装店网站建设的策划方案
  • win7 iis网站无法显示随州网站建设哪家实惠
  • 利用网站新媒体宣传法治建设建站哪个平台好
  • 网站seo课设wordpress 500 根目录
  • 电子商务网站建设的阶段化分析如何利用视频网站做数字营销推广
  • 电子商务网站建设ppt模板国外注册机网站
  • 西部数码做跳转网站百度seo排名培训优化
  • 农业网站素材wordpress all in one
  • 学习网站建设有前景没wordpress 和dokuwiki
  • 服装网站开发方案网站设计美工排版编辑
  • 旅游网站首页模板下载广州市建设工程检测中心网站
  • 餐饮加盟网站建设wordpress 首行缩进
  • kkday是哪里做的网站橙云 php网站建设
  • 站长之家0网站规划作品
  • 物流公司网站建设系统规划广告设计怎么学
  • 异地备案 网站中信建设有限责任公司经济性质
  • 网站没有备案怎么申请广告宿迁莱布拉网站建设
  • 太原适合网站设计地址网站建设 教学视频教程