我爱汪
我爱汪
  • 发布:2018-05-18 23:59
  • 更新:2021-04-30 11:43
  • 阅读:10066

求个监听所有通知消息(NotificationListenerService)这个服务的Native.js

分类:Native.js

官方提供的获取通知消息只能获取自己的应用的通知消息,
这里需要监听其它应该的通知消息来做对应的通知,
由于本人对native.js 不太懂,
希望大神来看看可以通过native.js 来实现这个功能不?
主要用到 安卓的 NotificationListenerService 服务的2个回掉函数,来实现
安卓大概是这么写的

package com.xingshulin.xsltestcontroller;  

import android.annotation.SuppressLint;  
import android.app.Notification;  
import android.os.Bundle;  
import android.service.notification.NotificationListenerService;  
import android.service.notification.StatusBarNotification;  
import android.util.Log;  

@SuppressLint("NewApi")  
public class NotificationMonitorService extends NotificationListenerService {  

    // 在收到消息时触发  
    @Override  
    public void onNotificationPosted(StatusBarNotification sbn) {  
        // TODO Auto-generated method stub  
        Bundle extras = sbn.getNotification().extras;  
        // 获取接收消息APP的包名  
        String notificationPkg = sbn.getPackageName();  
        // 获取接收消息的抬头  
        String notificationTitle = extras.getString(Notification.EXTRA_TITLE);  
        // 获取接收消息的内容  
        String notificationText = extras.getString(Notification.EXTRA_TEXT);  
        Log.i("XSL_Test", "Notification posted " + notificationTitle + " & " + notificationText);  
    }  

    // 在删除消息时触发  
    @Override  
    public void onNotificationRemoved(StatusBarNotification sbn) {  
        // TODO Auto-generated method stub  
        Bundle extras = sbn.getNotification().extras;  
        // 获取接收消息APP的包名  
        String notificationPkg = sbn.getPackageName();  
        // 获取接收消息的抬头  
        String notificationTitle = extras.getString(Notification.EXTRA_TITLE);  
        // 获取接收消息的内容  
        String notificationText = extras.getString(Notification.EXTRA_TEXT);  
        Log.i("XSL_Test", "Notification removed " + notificationTitle + " & " + notificationText);  
    }  
}  

不知道 Native.js该如何来实现

2018-05-18 23:59 负责人:无 分享
已邀请:
我爱汪

我爱汪 (作者)

自己先顶一下,求大神来看开年看,解读哈

我爱汪

我爱汪 (作者)

自己顶起来

我爱汪

我爱汪 (作者)

顶起来,求大神提点

我爱汪

我爱汪 (作者)

各位大哥,这个有可能实现不,没有啊

我爱汪

我爱汪 (作者)

自己坚持顶一下!

我爱汪

我爱汪 (作者)

自己顶一下

我爱汪

我爱汪 (作者)

求大神解惑

W小姐

W小姐

能不能实现不知道,但是让别人帮你写代码感觉不太现实

  • 我爱汪 (作者)

    谢谢回答,其实主要不是别人写代码,主要看能不能实现!

    2018-05-22 10:43

uniapp视频教程

uniapp视频教程 - https://www.uni-app.cn/ (枫桥居 uni-app视频教程)

这里大多数是前端开发人员,对原生开发并不懂

我爱汪

我爱汪 (作者)

自己顶一下

邱水仙

邱水仙

兄弟,你搞定了吗?我是卡在了申请通知使用权这一步了,能调到设置通知使用权的页面,但是这个页面里居然没有我的app

  • 我爱汪 (作者)

    没有搞定,我换平台了,

    2018-07-31 20:51

  • xiaoqianYang

    请问你解决了吗,可以获取全部消息了吗

    2018-11-12 15:08

  • 邱水仙

    回复 xiaoqianYang:已解决,可以获取的

    2018-11-18 15:44

  • 3***@qq.com

    兄弟我实现跳转了 但是监听不到

    2021-04-29 16:43

2***@qq.com

2***@qq.com

亲,你换到哪个平台?换系统平台还是开发平台

  • 我爱汪 (作者)

    换的cordova

    2018-08-07 10:03

  • 我爱汪 (作者)

    但是这玩意不太好用,开发速度没有dcloud快

    2018-08-07 10:04

  • 2***@qq.com

    dcloud 这玩儿好像没法添加NotificationListenerService权限,搞了好多天了 ,能把你用cordova 实现的代码给我学习一下吗,谢谢

    2018-08-07 10:11

  • demoneyes

    回复 我爱汪:我开始也想用dcloud的native.js来实现NotificationListenerService,尝试写了些代码后,发现根本不行,没办法,走原生了。

    2018-08-19 04:25

晓黑

晓黑

求在cordova的实现代码

3***@qq.com

3***@qq.com - 90年老鲜肉

我也挺需要这个功能的

3***@qq.com

3***@qq.com

同求啊。。。。。

xiaoqianYang

xiaoqianYang

我也需要这个方法

stuart_1

stuart_1

兄弟你cordova里怎么解决的,我网上找了个别人写的插件(NotificationListener-cordova)监听好像诶效果呀
https://github.com/coconauts/NotificationListener-cordova/issues
不知道你用的啥,方便说下吗

1***@qq.com

1***@qq.com - php,app,phpx

var SuppressLint=plus.android.importClass("android.annotation.SuppressLint");
var Notification=plus.android.importClass("android.app.Notification");
var Bundle=plus.android.importClass("android.os.Bundle");
////const NotificationListenerService=plus.android.importClass("android.service.notification.NotificationListenerService");
var StatusBarNotification=plus.android.importClass("android.service.notification.StatusBarNotification");
var Log=plus.android.importClass("android.util.Log");
var main = plus.android.runtimeMainActivity();
var filter= new IntentFilter("android.intent.action.SCANRESULT");
var onNotificationPosted = plus.android.implements( "android.service.notification.NotificationListenerService", {
"onNotificationPosted":function(StatusBarNotification){
console.log('onNotificationPosted成功2');
//console.log(typeof(notice)); //输出
}
} );
main.registerReceiver(onNotificationPosted, filter);

//不清楚怎么写的 这么写好像不行

  • 1***@qq.com

    用uniapp写在app.vue的onLaunch中 支付宝支付通知时会有错误提示

    2019-10-03 15:27

  • 1***@qq.com

    求高手指点

    2019-10-03 15:27

  • 1***@qq.com

            var SuppressLint=plus.android.importClass("android.annotation.SuppressLint");  
    var Notification=plus.android.importClass("android.app.Notification");
    var Bundle=plus.android.importClass("android.os.Bundle");
    var StatusBarNotification=plus.android.importClass("android.service.notification.StatusBarNotification");
    var onNotificationPosted = plus.android.implements( "android.service.notification.NotificationListenerService", {
    "onNotificationPosted":function(StatusBarNotification){
    console.log('onNotificationPosted成功2');
    //console.log(typeof(notice)); //输出
    }
    } );

    精简下以后再来搞

    2019-10-03 15:45

f***@qq.com

f***@qq.com

我也碰上了这个需求,当应用在后台时需要获取通知栏信息。
可以准确的说,用Native.js实现不了。因为NotificationListenerService在安卓中需要写一个类去集成,然后在AndroidManifest.xml进行静态注册,这个Service无法动态注册。
必须用离线打包自己做集成才能解决这个问题。

3***@qq.com

3***@qq.com

也谢监听事件了 但是监听不到

3***@qq.com

3***@qq.com

https://ask.dcloud.net.cn/question/122316

该问题目前已经被锁定, 无法添加新回复