通知侦听器 - onNotificationPosted 不起作用
Notification Listener - onNotificationPosted doesn't work
我已经尝试了所有类型的解决方案和代码,但这些解决方案中的任何一个都对我有用,但我不知道为什么。请帮助我。
我的 MainActivity 代码是:
if(isNotificationServiceEnabled())
{
Intent i= new Intent(this,NotificationsService.class);
i.putExtra("command", "get_status");
startService(i);
}
else
startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
现在我只是想检查服务是否读取了发布的通知,但从日志中我只能看到它进入 onCreate 方法但没有进入 onNotificationPosted.
这是我的服务代码 class:
public class NotificationsService extends NotificationListenerService {
@Override
public void onListenerConnected(){
Log.d(TAG, "Connected");
}
@Override
public void onNotificationPosted(final StatusBarNotification sbn){
Log.d(TAG,"got it");
}
我也试过广播服务的解决方案,但还是不行。
谢谢。
我找到了解决方案。在我的代码中我遇到了一些问题,但后来我在另一个项目中测试了关于通知监听器的其他代码,并且它起作用了。所以我修改了我的代码,现在它可以工作了。
关于notification lisener 您不需要启动该服务,因为当您启动该应用程序时,该服务就会启动。所以我刚刚对我的代码进行了以下更改:
主要
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(!isNotificationServiceEnabled())
{
startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
而在服务中我只是把日志代码写在调试通知包中。
相反,我了解到广播仅用于在服务和我的 activity 之间交换数据,例如在文本视图中编写通知。
我已经尝试了所有类型的解决方案和代码,但这些解决方案中的任何一个都对我有用,但我不知道为什么。请帮助我。
我的 MainActivity 代码是:
if(isNotificationServiceEnabled())
{
Intent i= new Intent(this,NotificationsService.class);
i.putExtra("command", "get_status");
startService(i);
}
else
startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
现在我只是想检查服务是否读取了发布的通知,但从日志中我只能看到它进入 onCreate 方法但没有进入 onNotificationPosted.
这是我的服务代码 class:
public class NotificationsService extends NotificationListenerService {
@Override
public void onListenerConnected(){
Log.d(TAG, "Connected");
}
@Override
public void onNotificationPosted(final StatusBarNotification sbn){
Log.d(TAG,"got it");
}
我也试过广播服务的解决方案,但还是不行。
谢谢。
我找到了解决方案。在我的代码中我遇到了一些问题,但后来我在另一个项目中测试了关于通知监听器的其他代码,并且它起作用了。所以我修改了我的代码,现在它可以工作了。
关于notification lisener 您不需要启动该服务,因为当您启动该应用程序时,该服务就会启动。所以我刚刚对我的代码进行了以下更改:
主要
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(!isNotificationServiceEnabled())
{
startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
而在服务中我只是把日志代码写在调试通知包中。
相反,我了解到广播仅用于在服务和我的 activity 之间交换数据,例如在文本视图中编写通知。