Android - Implémenter l'enregistrement des appareils
Dans ce guide, nous approfondirons la manière dont vous devez gérer l'enregistrement de l'appareil. Lorsque vous launch()
Notificare pour la première fois, l'appareil sera enregistré comme appareil non push.
Lorsqu’un enregistrement réussi de l’appareil a lieu, nous émettons une intention. Si vous avez configuré un récepteur d'intentions personnalisé comme mentionné dans la page d'Implémentation, vous pouvez recevoir ces intentions en remplaçant la méthode 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) {
}
};
Vous pouvez également vérifier les détails de l'appareil actuellement enregistré.
- Kotlin
- Java
Notificare.device().currentDevice
NotificareDeviceCompat.getCurrentDevice();
La méthode onReady()
dans NotificareIntentReceiver
sera également appelée lorsque tous les modules Notificare auront été lancés, y compris un enregistrement réussi de l'appareil.
De plus, vous pouvez vérifier si Notificare est prêt à tout moment en appelant Notificare.isReady
ou en écoutant l'événement onReady
n'importe où dans votre code en ajoutant un Notificare.OnReadyListener
comme décrit ci-dessous.
- 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
}
Attribuer un utilisateur à l'appareil
Par défaut, un appareil est enregistré en tant qu'utilisateur anonyme. Cependant, pour utiliser pleinement les notifications push dans votre stratégie omnicanal Actito, le simple enregistrement d'un appareil anonyme n'est pas ce que vous souhaitez. Par exemple, si vous authentifiez vos utilisateurs, vous souhaiterez attribuer des informations utilisateur à l'appareil enregistré comme indiqué ci-dessous.
- 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) {
}
});
Après cela, l'appareil restera enregistré avec ce userId
/ userName
jusqu'à ce que vous définissiez explicitement l'utilisateur comme anonyme. Selon la manière dont vous authentifiez les utilisateurs, vous souhaiterez peut-être vérifier l'état de connexion au lancement (dans onReady) et le modifier si nécessaire. Forcer l'enregistrement en tant qu'anonyme peut être mieux réalisé en définissant userId
et userName
sur null
.
Seul le userId sera utilisé pour faire correspondre les appareils aux profils dans votre base de données Actito.
Le nom d'utilisateur est uniquement utilisé pour fournir des informations supplémentaires.
- 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) {
}
});
Pour choisir le bon identifiant utilisateur :
- Les données doivent être disponibles sous forme de clé dans Actito grâce à la synchronisation des données entre votre système et Actito.
- Les données doivent être disponibles sur votre site internet (en vous connectant à un espace client).
Veuillez utiliser un attribut déjà défini comme unique sur votre table de profil Actito.
Si vous devez ajouter un nouvel attribut unique, cela est possible, mais soyez prudent car cela pourrait avoir des impacts sur votre processus de synchronisation des données entre votre système et Actito. Demandez à votre expert en données d'intégration si nécessaire.
Remplacer la langue de l'appareil
Par défaut, nous collecterons automatiquement la langue et la région d'un appareil en fonction des paramètres régionaux de l'appareil. Dans la plupart des cas, cela suffira, mais dans les cas où vous souhaitez remplacer la combinaison langue/région de l'appareil par une sélection stricte de langues, vous pouvez le faire en appelant la méthode suivante :
- 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) {
}
});
Finalement, vous pouvez toujours récupérer la langue préférée en appelant la méthode suivante :
- Kotlin
- Java
Notificare.device().preferredLanguage
NotificareDeviceCompat.getPreferredLanguage();