Identifying users with HockeyApp
23 Dec 2016 | CrashAnalytics XamarinInstead, to Identify users I do the following instead.
Android
Create an implementation of CrashManagerListener, which overrides UserID, Contact and Description.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MyCrashManagerListener : HockeyApp.Android.CrashManagerListener | |
{ | |
public override string UserID | |
{ | |
get | |
{ | |
try | |
{ | |
var settings = Mvx.Resolve<ISettings>(); | |
var userId = settings.GetValue("userId", Guid.Empty); | |
return userId.ToString(); | |
} | |
catch { /* ignore */ } | |
return Guid.Empty.ToString(); | |
} | |
} | |
public override string Contact | |
{ | |
get | |
{ | |
try | |
{ | |
var settings = Mvx.Resolve<ISettings>(); | |
var userId = settings.GetValue("email", "derp@herp.durr"); | |
return userId; | |
} | |
catch { /* ignore */ } | |
return "derp@herp.durr"; | |
} | |
} | |
public override string Description | |
{ | |
get | |
{ | |
try | |
{ | |
var settings = Mvx.Resolve<ISettings>(); | |
var userId = settings.GetValue("displayname", "LoggedOut"); | |
return userId; | |
} | |
catch { /* ignore */ } | |
return "LoggedOut"; | |
} | |
} | |
} |
Then use it as follows when registering the CrashManager
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CrashManager.Register(this, "your hockey app id", new MyCrashManagerListener()); |
iOS
On iOS you need to implement BITHockeyManagerDelegate where you need to override UserIdForHockeyManager(), UserNameForHockeyManager() and UserEmailForHockeyManager().
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class HockeyAppDelegate : BITHockeyManagerDelegate | |
{ | |
public override string UserIdForHockeyManager(BITHockeyManager hockeyManager, | |
BITHockeyBaseManager componentManager) | |
{ | |
try | |
{ | |
var settings = Mvx.Resolve<ISettings>(); | |
var userId = settings.GetValue("userId", Guid.Empty); | |
return userId.ToString(); | |
} | |
catch { /* ignore */ } | |
return Guid.Empty.ToString(); | |
} | |
public override string UserNameForHockeyManager(BITHockeyManager hockeyManager, | |
BITHockeyBaseManager componentManager) | |
{ | |
try | |
{ | |
var settings = Mvx.Resolve<ISettings>(); | |
var userId = settings.GetValue("displayname", "LoggedOut"); | |
return userId; | |
} | |
catch { /* ignore */ } | |
return "LoggedOut"; | |
} | |
public override string UserEmailForHockeyManager(BITHockeyManager hockeyManager, | |
BITHockeyBaseManager componentManager) | |
{ | |
try | |
{ | |
var settings = Mvx.Resolve<ISettings>(); | |
var userId = settings.GetValue("email", "derp@herp.durr"); | |
return userId; | |
} | |
catch { /* ignore */ } | |
return "derp@herp.durr"; | |
} | |
} |
Then right before starting the SharedHockeyManager you need to register your Delegate.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var manager = BITHockeyManager.SharedHockeyManager; | |
manager.Configure("your hockey app id"); | |
manager.Delegate = new HockeyAppDelegate(); | |
manager.StartManager(); |
Now the User and Contact columns in a crash report on HockeyApp should be filled out with the values you provided.