В моем приложении я реализовал функцию Push Notification.Я добавил кнопку для пользователя, которая позволяет ему полностью отключить уведомление.Однако это не работает, как я ожидал.Вот фрагмент кода:
Из MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseMessaging.getInstance().subscribeToTopic("test_topic");
((SwitchCompat)findViewById(R.id.notification_switch)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
Toast.makeText(MainActivity.this, "Switch activated ", Toast.LENGTH_LONG).show();
FirebaseMessaging.getInstance().subscribeToTopic("test_topic");
}else {
Toast.makeText(MainActivity.this, "Switch deactivated ", Toast.LENGTH_LONG).show();
FirebaseMessaging.getInstance().unsubscribeFromTopic("test_topic");
new Thread(new Runnable() {
@Override
public void run() {
try {
FirebaseInstanceId.getInstance().deleteInstanceId();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
});
}
Класс FirebaseMessagingService для обработки сообщения:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
public static String TAG = MyFirebaseMessagingService.class.getName();
@Override
public void onMessageReceived(RemoteMessage remoteMessage){
super.onMessageReceived(remoteMessage);
Log.e(TAG, "onMessageReceived() --> " + remoteMessage.getNotification().getTitle());
}
// @Override
// public void onNewToken(String s) {
// super.onNewToken(s);
// Log.e(TAG, "onNewToken() --> " + s);
// }
}
Когда я пытаюсь отправить уведомление, используя тему, я нене получаю никаких уведомлений.Если я отправляю уведомление на все устройства с приложением, я все равно получаю уведомление.Как я могу полностью запретить моему приложению получать уведомления?