DISCLAIMER: This is not the definitive answer ever and this is based on my personal opinion/experience, read below for details
Reading this part
so I can see if it is one of mine or not
I supposed that your goal is to identify just your applications crashes, in this case I would suggest you to implement fabric in all your applications, even if you don't really like it.
I know this is a bit boring to do and requires a massive store update, but there are several reasons for this, those are the one come in my mind right now:
With fabric you don't have to re-invent the wheel again. In short words, crashlitics (fabric) already have an issue tracker, a browsable list of errors with all specifications about both the details about the phone using the app and the error logcat and many other features.
With the "another app" solution, you force your users to download another app. Many of them might not want to do this and so your logs are cut-off from a great part of your users. If you can "force" your users to download the external log app (maybe couse it's B to B, i don't know), you will in any case increase the disk space required, widely underestimated problem.
Implementing fabric is 3 lines of code, implementing a custom crash-detecting application is pretty much a bigger work.
You will have to create also a web/mobile console for your investigations.
For a better answer, I'll add two rows on how to add Fabric (they are all really well explained and reported in the link I posted above, re-link):
Add in your Gradle.build file the Fabric references:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
// These docs use an open ended version so that our plugin
// can be updated quickly in response to Android tooling updates
// We recommend changing it to the latest version from our changelog:
// https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
// Put Fabric plugin after Android plugin
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}
Add in your Manifest, under the <Application...>
tag, those lines with the API KEY
<meta-data
android:name="io.fabric.ApiKey"
android:value="<FABRIC_API_KEY>"
/>
and add also the internet permission, if you don't have it already
<uses-permission android:name="android.permission.INTERNET" />
Finally, add in your main activity
the initializer
Fabric.with(this, new Crashlytics());
and just build the project.
Please note
If your purpose is also to register every other 3rd part application, then it's another question and I can't help you for this at the moment. I think you can read the phone's logcat and register ERROR (or above) logs. Otherway probably creating a launcher application will work since it gives you a more complete control of other apps.
just to say
Even if not a perfect answer, I wanted to post this since maybe another opinion might help you picking the best choices for your needs, I hope this helped you and if I find something useful for the 3rd part application I will implement here asap!
Good luck!
Edit 1
I found this answer. It says that you can read the logcat of the android application with the given code.
At this point I would suggest you to store all logs from certain package name (yours) applications. In this way you will be able to detect your applications log and do whatever you want with them :)