It does what every Sentry client needs to do
Below is an example of how to register Sentry-Android to handle uncaught exceptions
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Sentry will look for uncaught exceptions from previous runs and send them
Sentry.init(this, "YOUR-SENTRY-DSN");
}
}
- Download the Sentry-Android JAR
- Download the Protocol JAR (Required dependency) - View more info
- Place both the JARs in the Android project's "libs" directory
- Code
Sentry.captureMessage("Something significant may have happened");
try {
JSONObject obj = new JSONObjet();
} catch (JSONException e) {
Sentry.captureException(e);
}
Sentry.captureEvent(new Sentry.SentryEventBuilder()
.setMessage("Being awesome")
.setCulprit("Josh Holtz")
.setTimestamp(System.currentTimeMillis())
);
// CALL THIS BEFORE CALLING Sentry.init
// Sets a listener to intercept the SentryEventBuilder before
// each capture to set values that could change state
Sentry.setCaptureListener(new SentryEventCaptureListener() {
@Override
public SentryEventBuilder beforeCapture(SentryEventBuilder builder) {
// Needs permission - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
// Sets extra key if wifi is connected
try {
builder.getExtra().put("wifi", String.valueOf(mWifi.isConnected()));
builder.getTags().put("tag_1", "value_1");
} catch (JSONException e) {}
return builder;
}
});
Sentry.init(this, "http://your-base-url.com" "YOUR-SENTRY-DSN");
Email: josh@rokkincat.com
Twitter: @joshdholtz
Sentry-Android is available under the MIT license. See the LICENSE file for more info.