У меня есть список зарегистрированных пользователей GCM и их соответствующих регистрационных идентификаторов в таблице базы данных, и я действительно хочу отменить регистрацию пользователя всякий раз, когда он/она удаляется из таблицы. Я нашел много примеров здесь, в Stackoverflow, но большинство из них основано на старом GCMRegistrar API, который теперь устарел. Я использую API GoogleCloudMessaging и регистрирую пользователя следующим способом:
private void registerUser(){
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getBaseContext());
String regId = "";
try {
regId = gcm.register(getString(R.string.project_number));
Log.i("registrationId", regId);
}
catch (IOException e) {
Log.i("Registration Error", e.getMessage());
}
}
У меня есть приложение для администратора, которое действует как сервер сторонних приложений, поскольку оно подталкивает уведомления всем пользователям. Я хочу отменить регистрацию конкретного пользователя из этого приложения администратора следующим образом:
private void unRegister(String regId) {
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getBaseContext());
try {
gcm.unregister();
}
catch (IOException e) {
System.out.println("Error Message: " + e.getMessage());
}
}
Но это смущает меня, что метод unregister() не принимает регистрационный идентификатор в качестве аргумента, что делает невозможным отменить регистрацию определенного устройства. Есть ли способ отменить регистрацию определенного устройства из GCM по идентификатору регистрации?