如何在Android上启动NotificationListenerService

2024-02-02

我想使用NotificationListenerService 访问Android 手机上的通知。我检查了很多教程,但找不到他们在哪里调用该服务。

我应该在MainActivity 上使用bindService 还是startService?意图应该是什么样的?有人可以告诉我这个的语法吗?

查看我正在研究的服务实现之一:

public class NLService extends NotificationListenerService {

Context context;

@Override
public void onCreate() {

    super.onCreate();
    context = getApplicationContext();


}


@Override
public void onNotificationPosted(StatusBarNotification sbn) {
    String pack = sbn.getPackageName();
    String ticker ="";
    if(sbn.getNotification().tickerText !=null) {
        ticker = sbn.getNotification().tickerText.toString();
    }
    Bundle extras = sbn.getNotification().extras;
    String title = extras.getString("android.title");
    String text = extras.getCharSequence("android.text").toString();
    int id1 = extras.getInt(Notification.EXTRA_SMALL_ICON);
    Bitmap id = sbn.getNotification().largeIcon;


    Log.i("Package",pack);
    Log.i("Ticker",ticker);
    Log.i("Title",title);
    Log.i("Text",text);

    Intent msgrcv = new Intent("Msg");
    msgrcv.putExtra("package", pack);
    msgrcv.putExtra("ticker", ticker);
    msgrcv.putExtra("title", title);
    msgrcv.putExtra("text", text);
    if(id != null) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        //id.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] byteArray = stream.toByteArray();
        msgrcv.putExtra("icon",byteArray);
    }
    LocalBroadcastManager.getInstance(context).sendBroadcast(msgrcv);

}
@Override

public void onNotificationRemoved(StatusBarNotification sbn) {
    Log.i("Msg","Notification Removed");

}

}


为了监听传入的通知,他们不需要显式启动它。首先使用以下权限在清单中定义您的服务 -

android.permission.BIND_NOTIFICATION_LISTENER_SERVICE

 <service android:name=".MyNotificationListener"
      android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
     <intent-filter>
         <action android:name="android.service.notification.NotificationListenerService" />
     </intent-filter>
 </service>

另一件需要注意的事情是,您必须使用以下意图来授予许可 -

Intent intent=new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");

或通过手动授予通知访问权限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Android上启动NotificationListenerService 的相关文章

  • 具有相等宽度和高度 TD 的响应式表格

    如何创建每个单元格 TD 具有相同宽度和高度的响应式 HTML 表格 因此 当我调整浏览器窗口的大小或调整表格容器的大小时 表格将调整大小 但每个单元格将具有相同的高度和宽度 基金会不关心这个 当我用固定宽度和高度 以像素为单位 初始化 T
  • 如何使用 Ioc Unity 注入依赖属性

    我有以下课程 public interface IServiceA string MethodA1 public interface IServiceB string MethodB1 public class ServiceA IServ
  • Python请求401错误但url在浏览器中打开

    我正在尝试从这个位置提取 json https www nseindia com api option chain indices symbol BANKNIFTY https www nseindia com api option cha
  • 使用 BASH 和 AWK 创建 HTML 表

    我在创建 html 表来显示文本文件中的统计信息时遇到问题 我确信有 100 种方法可以做得更好 但这里是 以下脚本中的注释显示了输出 bin bash function getapistats curl s http api exampl
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件
  • 如何从 stack.navigation 外部的组件使用 navigation.navigate

    我有一个使用 React Native 的应用程序 我正在使用 React navigation 5 2 9 我构建了一个 Stack Navigator 其中有我的屏幕 但我希望页脚组件位于外部 以便它在所有屏幕中呈现 问题是 我无法从页
  • Chrome 中的 addEventListener

    我正在关注 Lynda com 上有关新 DOM 事件模型的教程 这是我正在使用的代码 function addEventHandler oNode sEvt fFunc bCapture if typeof window event un
  • 在私有 guice 模块中公开 Map

    我在 guice 中有一个 PrivateModule 我想从该模块公开一个 Map public class TestInjectionModule extends PrivateModule expose Map class annoa
  • Python pip 安装错误 [SSL: CERTIFICATE_VERIFY_FAILED]

    我已经尝试解决这个问题有一段时间了 由于某种原因 我陷入了 ssl 问题 并且不知道发生了什么 问题 我已经安装了 python2 7 和 easy install2 7 但是当尝试使用 easy install2 7 安装 pip 时 出
  • Pandas 替换特定列上的值

    我知道这两个类似的问题 熊猫替换值 https stackoverflow com questions 27117773 pandas replace values Pandas 替换数据框中的列值 https stackoverflow
  • 如何在 CruiseControl.net 中配置 svn 任务来检测 subversion 外部更改

    我在 subversion 中有一个 net 项目 它持续集成 Cruisecontrol net 我使用Svn源代码控制CCNET任务 net 项目库目录 其中包含配置为 subversion 外部的一组可重用组件 ProjectA li
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1
  • Spark DataFrame 不尊重架构并将所有内容视为字符串

    我面临着一个多年来一直无法克服的问题 我使用的是 Spark 1 4 和 Scala 2 10 我现在无法升级 大型分布式基础设施 我有一个包含几百列的文件 其中只有 2 列是字符串 其余都是长列 我想将此数据转换为标签 特征数据框 我已经
  • 如何使用 gvisMotionChart 处理 POSIXlt 格式时间?

    The googleVisR软件包出奇的好 然而 我对一个问题感到困惑gvisMotionChart关于 timevar 因为我的数据集中的时间是POSIXlt格式 例如 2009 07 02 19 00 00 2009 07 02 20
  • 使用 Three.js 中的设备方向控件进行对象旋转

    我正在迈出使用 JavaScript 进行编码并使用 Three js 的第一步 我正在尝试 Threejs org 的这个例子 http trijs org examples misc controls deviceorientation
  • Tensorflow ctc_loss_calculator:找不到有效路径

    当运行我的神经网络 双向 LSTM 进行音频识别时 我使用连接主义时间分类 CTC 但在某些时候 训练网络时我几乎每批都会收到来自 Tensorflow 的警告 W tensorflow core util ctc ctc loss cal
  • 非键属性查询

    看起来 dynamodb 的query方法必须包含分区键作为过滤器的一部分 如果不知道分区键如何进行查询 例如 您有一个具有属性的用户表userid设置为分区键 现在我们想通过电话号码查找用户 是否可以在没有分区键的情况下执行查询 使用sc
  • Android Nougat 无法显示某些矢量文件 (Resources$NotFoundException)

    我一直在开发一个包含许多矢量图形的应用程序 最近我开始在 Nougat 上测试它 发现它立即崩溃了 logcat 在加载矢量时显示 Resources NotFoundException 这让人想起带有矢量图形的 Android 早期版本中
  • 调试客户端时使用 Chrome/Firefox

    我正在使用带有 getUserMedia 的相机 但出现了一些需要修复的错误 问题是 Visual Studio 只允许我使用 IE 调试 JavaScript 我的意思是命中断点 而 IE 不支持 getUserMedia 如果您想在 I
  • 如何限制mySQL中的搜索和替换字符串

    我用它来搜索和替换 mySQL 中的字符串 UPDATE products SET prodname REPLACE prodname S S 这些产品包含诸如 TYLENOL TABS 100 S 之类的字符串 我想将其转换为 TYLEN

随机推荐

  • 从java程序运行jar文件

    我正在尝试从另一个 Java 程序执行 jar 文件 我正在使用以下代码 try Runtime runtime Runtime getRuntime runtime exec path upto jar catch Exception e
  • 哪个适合linux? GNU make、cmake、codeblocks、qmake

    在我面前有一些不同的技术 我对它们感到困惑 GNU make CMAKE Qmake Code blocks 方法 Code Blocks uses a custom build system which stores its inform
  • Visual Studio 2017 xaml 设计器不可用

    使用 Visual Studio Professional 2017 版本 15 2 26430 16 当我打开我开发的桌面 UI 的 xaml 文件时 我无法再看到 xaml 设计器 我只能看到原始 xaml 代码 这是新行为 可能是由于
  • JFrame 上的所有组件均未显示

    我正在创建一个刽子手游戏 想要在框架上有 3 个不同的组件 绞刑架的图片 试图猜测的单词以及字母的按钮 当我尝试将这些组件添加到 JFrame 时 字符被添加到我也想要它们 但是这个词显示在左侧 而 HangmanGallows 扩展 JP
  • MATLAB:在黑白图像上绘制一条线

    如果已知起始坐标和结束坐标 在 MATLAB 中在黑白 二进制 图像上绘制线条的最佳方法是什么 请注意 我并不是想添加注释行 我希望这条线成为图像的一部分 您可能想看看我的答案 https stackoverflow com a 19413
  • 如何确保 CSS :hover 应用于动态添加的元素

    我有一个脚本 当您将鼠标悬停在缩略图上时 它会在缩略图上动态添加完整图像 我还为完整图像提供了 CSS hover 样式 以使它们扩展到更大的宽度 通常它们被限制为缩略图的尺寸 如果图像加载速度很快或被缓存 这种方法效果很好 但如果完整图像
  • 导致 HttpHostConnectException 的原因是什么?

    我在搜索我的网站时具有自动完成 提前输入功能 我发现有时他们是与之相关的例外 我们正在使用代理服务器 org apache http conn HttpHostConnectException Connection to http prox
  • MVC4 HTML TextBoxFor 修改 ViewModel 后不工作

    我有一个我真的不明白的问题 我有一个非常简单的模型 其中有一个列表作为公共成员 每当我的控制器在回发时从模型中删除元素时 TextBoxFor HTML 帮助程序似乎不会接受更改 这些助手似乎正在缓存一些东西 但我无法确定它 演示 重现可以
  • Glassfish vhost 仅提供静态内容。禁用会话如何?

    我在服务器中有一个文件夹 其中包含所有图像 静态文件等 它是我的应用程序的存储 我需要在http 主机 8080 存储 http host 8080 storage 语境 此时 我在应用程序状态的应用程序根目录上安装了一个名为 存储 的符号
  • 在以下字符串聚合中寻找与 .groupby 相反的 pandas“ungroup by”操作?

    假设我们采用 pandas 数据框 name age family 0 john 1 1 1 jason 36 1 2 jane 32 1 3 jack 26 2 4 james 30 2 然后做一个groupby group df df
  • 无法让浏览器启动 Express 下载

    继从this https stackoverflow com questions 53981780 angular cannot get file download from express using res download nored
  • 使用 Spring 表达式语言访问属性文件

    我使用 Spring Boot 使用 Thymeleaf 创建了一个简单的 Web 应用程序 我使用 application properties 文件作为配置 我想要做的是将名称和版本等新属性添加到该文件并访问 Thymeleaf 中的值
  • “easy_install -U cython”未能抱怨 vcvarsall.bat 和 -mno-cygwin

    在Windows下 似乎easy install具有 C 依赖关系并不是很容易 尝试 1 vcvarsall bat errors 我正在安装cython在Windows7下 与MinGw 我修改了Windows7的PATH包括C MinG
  • 在 Switch 语句中使用 Double

    下面的所有值都是双精度值 但 switch 需要整数值 有没有办法解决 switch fivePercentValue case floor 5 fivePercentValue 100 fivePercent backgroundColo
  • 开源项目但对 API 密钥保密

    我想使用 GitHub API 创建一个开源项目 但我在源代码中遇到了我的密钥的问题 我从不同的地方读到 永远不要在源代码中包含任何密钥 我同意这一点 我还发现了一些关于通过网络服务器进行身份验证而不是让用户获取自己的 API 密钥的模糊参
  • Rails Byebug 没有停止应用程序

    我想使用 byebug 来调试我的应用程序 但应用程序永远不会停止 尽管我已经把byebug在我的代码中 这是我的 Gemfile group development test do Call byebug anywhere in the
  • 为什么使用 CvScalar

    我需要帮助来理解 CvScalar 的功能到底是什么 例如下面的代码中 scalar 的任务是什么 for int i 0 i lt faces size i Point center Point faces i x faces i wid
  • C 编译中出现错误“错误:杂散'\342'”,“杂散'\200'”,“杂散'\234'”[重复]

    这个问题在这里已经有答案了 I used 记事本 https en wikipedia org wiki Notepad 2B 2B编写代码 当我尝试编译它时 我使用cc lab7 c o test1编译它 我得到了一堆杂散 342 杂散
  • setup.py install_require 带选项

    我需要添加rjsmin通过我的依赖install require在 setup py 中 rjsmin提供了一种通过使用禁用 c 扩展的方法 without c extensions像下面这样切换 python setup py insta
  • 如何在Android上启动NotificationListenerService

    我想使用NotificationListenerService 访问Android 手机上的通知 我检查了很多教程 但找不到他们在哪里调用该服务 我应该在MainActivity 上使用bindService 还是startService