My app only does not work on Huawei and on other phones it does. Why??? I have that code in my MainActivity: package pl.ct8.wieprzco.wieprzwatch;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent=new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
startActivity(intent);
startService(new Intent(this,NotificationGetService.class));
}
}
And that simple code in NotificationGetService class:
public class NotificationGetService extends NotificationListenerService{
SharedPreferences sharedPreferences;
SharedPreferences.Editor spEditor;
@Override
public void onCreate(){
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
spEditor = sharedPreferences.edit();
Log.e("jej","swiat powiadomien");
super.onCreate();
}
@Override
public void onListenerConnected(){
super.onListenerConnected();
Log.e("startCommand","yeah");
}
@Override
public int onStartCommand(Intent intent,int flags, int startId){
Log.e("startCommand","yes");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onNotificationPosted(StatusBarNotification sbn){
super.onNotificationPosted(sbn);
spEditor.putInt("notificationCount",sharedPreferences.getInt("notificationCount",0)+1);
spEditor.apply();
Log.e("ADDED","YESSSSSS");
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn){
super.onNotificationRemoved(sbn);
spEditor.putInt("notificationCount",sharedPreferences.getInt("notificationCount",1)-1);
spEditor.apply();
Log.e("REMOVED","YESSSSSS");
}
}
That is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service android:name=".UpdateTimeService"/>
<service android:name=".NotificationGetService"
android:label="@string/service_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
And it logs onCreate and onStartCommand, but no onListenerConnected or other. Please help i try to do that so much time. Very thanks John!!
For those running versions of Android higher than 5.0, please enable our Notification listener under Settings > Sound and notifications > Notification access.
To use NotificationListenerService, we need to create a java file which extends NotificationListenerService and implement two callback methods. Both methods have a parameter named “sbn”, which is an object of StatusBarNotification class. StatusBarNotification provides necessary information about Notifications.
A service that receives calls from the system when new notifications are posted or removed, or their ranking changed.
With me, the first time the app is installed on the phone it didn't work. I had to go to setting --> notification access --> turn on the notificationListener.
After I did this, it worked.
When I made some changes, it stopped working. Turned out Android has a caching problem, as you can read here. What you should do is rename (refactor) the notificationListenerService and it should work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With