Android: implementar el registro del dispositivo
En esta guía, profundizaremos en cómo debe manejar el registro del dispositivo. Cuando launch()
Notificare por primera vez, el dispositivo se registrará como un dispositivo no push.
Cuando se produce un registro de dispositivo exitoso, emitimos una intención. Si ha configurado un receptor de intents personalizado como se menciona en la página Implementación, puede recibir estos intents anulando el método onDeviceRegistered()
de NotificareIntentReceiver
.
- Kotlin
- Java
class CustomIntentReceiver : NotificareIntentReceiver() {
override fun onDeviceRegistered(context: Context, device: NotificareDevice) {
}
}
class CustomIntentReceiver extends NotificareIntentReceiver {
@Override
protected void onDeviceRegistered(@NonNull Context context, @NonNull NotificareDevice device) {
}
};
También puede consultar los detalles del dispositivo registrado actualmente.
- Kotlin
- Java
Notificare.device().currentDevice
NotificareDeviceCompat.getCurrentDevice();
El método onReady()
en NotificareIntentReceiver
también se llamará cuando se hayan iniciado todos los módulos Notificare, incluido el registro exitoso del dispositivo.
Además, puede verificar si Notificare está listo en cualquier momento llamando a Notificare.isReady
o escuchando el evento onReady
en cualquier parte de su código agregando un Notificare.OnReadyListener
como se describe a continuación.
- Kotlin
- Java
class MainActivity : AppCompatActivity(), Notificare.Listener {
override fun onCreate(savedInstanceState: Bundle?) {
// more code ...
Notificare.addListener(this)
}
override fun onDestroy() {
// more code ...
Notificare.removeListener(this)
}
// region Notificare.OnReadyListener
override fun onReady(application: NotificareApplication) {
}
override fun onUnlaunched() {
}
// endregion
}
public class MainActivity extends AppCompatActivity implements Notificare.Listener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
// more code ...
Notificare.addListener(this);
}
@Override
protected void onDestroy() {
// more code ...
Notificare.removeListener(this);
}
// region Notificare.OnReadyListener
@Override
public void onReady(@NonNull NotificareApplication application) {
}
@Override
public void onUnlaunched() {
}
// endregion
}
Asignar un usuario al dispositivo
De forma predeterminada, un dispositivo se registra como usuario anónimo. Sin embargo, para utilizar plenamente las notificaciones push en su estrategia omnicanal Actito, simplemente registrar un dispositivo anónimo no es lo que desea. Por ejemplo, si está autenticando a sus usuarios, querrá asignar información de usuario al dispositivo registrado como se muestra a continuación.
- Kotlin
- Java
Notificare.device().updateUser(
userId = "7f42bedc-d74b-4c64-a5cf-76bcc5130b05",
userName = "John Doe",
callback = object : NotificareCallback<Unit> {
override fun onSuccess(result: Unit) {
}
override fun onFailure(e: Exception) {
}
}
)
String userId = "7f42bedc-d74b-4c64-a5cf-76bcc5130b05";
String userName = "John Doe";
NotificareDeviceCompat.updateUser(userId, userName, new NotificareCallback<Unit>() {
@Override
public void onSuccess(Unit result) {
}
@Override
public void onFailure(@NonNull Exception e) {
}
});
Después de eso, el dispositivo permanecerá registrado con este userId
/ userName
hasta que establezca explícitamente al usuario como anónimo. Dependiendo de cómo autentique a los usuarios, es posible que desee verificar el estado de inicio de sesión al iniciar (en onReady) y cambiarlo si es necesario. La mejor manera de forzar el registro como anónimo es estableciendo userId
y userName
en null
.
Solo se utilizará el ID de usuario para hacer coincidir los dispositivos con los perfiles en su base de datos Actito.
El nombre de usuario sólo se utiliza para proporcionar información adicional.
- Kotlin
- Java
Notificare.device().updateUser(
userId = null,
userName = null,
callback = object : NotificareCallback<Unit> {
override fun onSuccess(result: Unit) {
}
override fun onFailure(e: Exception) {
}
}
)
String userId = null;
String userName = null;
NotificareDeviceCompat.updateUser(userId, userName, new NotificareCallback<Unit>() {
@Override
public void onSuccess(Unit result) {
}
@Override
public void onFailure(@NonNull Exception e) {
}
});
Para elegir el ID de usuario correcto:
- Los datos deben estar disponibles como clave en Actito a través de la sincronización de datos entre su sistema y Actito.
- Los datos deben estar disponibles en su sitio web (conectándose a un área de clientes).
Utiliza un atributo ya definido como único en tu tabla de perfil de Actito.
Si necesita agregar un nuevo atributo único, esto es posible, pero tenga cuidado ya que esto podría afectar su proceso de sincronización de datos entre su sistema y Actito. Pregúntele a su experto en datos de incorporación si es necesario.
Cambiar idioma del dispositivo
De forma predeterminada, recopilaremos automáticamente el idioma y la región de un dispositivo según la configuración regional del dispositivo. En la mayoría de los casos, esto será suficiente, pero en los casos en los que desee anular la combinación de idioma/región del dispositivo con una selección estricta de idiomas, puede hacerlo llamando al siguiente método:
- Kotlin
- Java
Notificare.device().updatePreferredLanguage("en-US", object : NotificareCallback<Unit> {
override fun onSuccess(result: Unit) {
}
override fun onFailure(e: Exception) {
}
})
NotificareDeviceCompat.updatePreferredLanguage("en_US", new NotificareCallback<Unit>() {
@Override
public void onSuccess(Unit result) {
}
@Override
public void onFailure(@NonNull Exception e) {
}
});
Finalmente, siempre puedes recuperar el idioma preferido llamando al siguiente método:
- Kotlin
- Java
Notificare.device().preferredLanguage
NotificareDeviceCompat.getPreferredLanguage();