我已尝试过所有类型的解决方案和代码,但这些解决方案都适用于我,而且我不知道为什么。请帮帮我。
我的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));
现在我只是尝试检查该服务是否已发布nostification,但是从日志中我只能看到它进入 onCreate 方法,但 onNotificationPosted
这是我的服务类的代码:
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");
}
我也尝试过使用广播服务的解决方案,但它仍然无法正常工作。
感谢。
答案 0 :(得分:0)
我找到了解决方案。在我的代码中我遇到了一些问题,但后来我在其他项目中测试了有关通知监听器的其他代码,并且它工作正常。那么我修改我的代码,现在它可以工作。
关于通知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();
}
在服务中我只是将日志代码写入调试通知包中。
相反,我得到的广播仅用于在服务和我的活动之间交换数据,例如在文本视图中编写通知。