声明:这不是最终答案,基于我的个人意见和经验,详见下文
阅读此部分
以便我可以确定它是否是我的应用程序之一
我猜你的目标是仅识别自己的应用程序崩溃,在这种情况下,我建议你在所有应用程序中实现Fabric,即使你不太喜欢它。
我知道这有点无聊,并且需要大量存储更新,但是现在我想到了几个原因:
使用Fabric,您不必再次发明轮子。简而言之,Crashlitics(Fabric)已经拥有一个问题跟踪器,一个可浏览的错误列表,其中包含有关使用应用程序的手机和错误日志记录的所有规格以及许多其他功能。
使用“另一个应用程序”解决方案,您会强制用户下载另一个应用程序。他们中的许多人可能不想这样做,因此您的日志被截断了很大一部分用户。如果您可以“强制”用户下载外部日志应用程序(也许是B到B,我不知道),则无论如何都会增加所需的磁盘空间,这是一个被广泛低估的问题。
实现Fabric只需3行代码,而实现自定义崩溃检测应用程序需要更多的工作。
您还将需要为您的调查创建Web /移动控制台。
为了获得更好的答案,我将添加两行有关如何添加Fabric的说明(它们在我上面发布的链接(重新链接)中都有很好的解释和报告):
在Gradle.build文件中添加Fabric引用:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
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;
}
在
<Application...>
标签下面添加以下这些包含API KEY的内容。
<meta-data
android:name="io.fabric.ApiKey"
android:value="<FABRIC_API_KEY>"
/>
如果您还没有,请添加Internet权限
并且也要添加Internet权限。
<uses-permission android:name="android.permission.INTERNET" />
最后,在您的主
activity
中添加初始化程序。
Fabric.with(this, new Crashlytics());
只需构建项目即可。
请注意
如果您的目的也是要注册每个其他第三方应用程序,那么这是另一个问题,我暂时无法帮助您。我认为您可以阅读手机的logcat并注册ERROR(或以上)日志。另一种方法可能是创建启动器应用程序,因为它可以更完全地控制其他应用程序。
只是说一下
即使不是完美的答案,我还是想发布这篇文章,因为也许另一个观点可以帮助您选择最好的选择来满足您的需求,我希望这对您有所帮助,如果我找到了对第三方应用程序有用的东西,我会尽快在这里实现!
祝你好运!
编辑1
我找到了这个答案。它说您可以使用给定的代码读取Android应用程序的logcat。
此时,我建议您存储特定包名称(您的)应用程序的所有日志。这样,您将能够检测到您的应用程序日志并按照您的意愿处理它们 :)