【问题标题】:acra: don't send "android id"acra:不要发送“android id”
【发布时间】:2012-11-06 19:19:54
【问题描述】:

我的 acra 错误报告显示在 BugSense 中,并带有“Android ID”字段。

我对此进行了测试,它在应用程序安装之间保持不变。我们不想发送任何可用于跟踪用户的信息。有没有办法避免发送此类数据?

我根本没有自定义报告数据,所以都是默认值。我不授予 READ_PHONE_STATE 权限,所以我希望这会阻止“Android ID”被发送到 BugSense。

有什么想法吗?

【问题讨论】:

    标签: android acra bugsense


    【解决方案1】:

    你可以试试customReportContent,每个https://github.com/ACRA/acra/wiki/AdvancedUsage#wiki-Choosing_which_fields_to_be_included_in_reports。根据文档,“只有在 customReportContent 中设置的字段才会被实际处理”。

    来自他们的示例代码:

    @ReportsCrashes(formKey = "xxxxxxxxxxxxxxxx", 
                customReportContent = { APP_VERSION, ANDROID_VERSION, PHONE_MODEL, CUSTOM_DATA, STACK_TRACE, LOGCAT },                
                mode = ReportingInteractionMode.TOAST,
                resToastText = R.string.crash_toast_text)
    

    【讨论】:

    • 我希望有一种方法可以排除一个值,而不是枚举除 android id 之外的每个字段。
    • @JeffreyBlattman:我不知道 ACRA 提供这种服务。有问题的值大概是来自android.provider.Settings.SystemANDROID_ID 值。我同意这应该可以独立切换,但这可能是您需要请求的功能。
    • 这行得通,虽然我不知道为什么。设备 ID 有一个 ReportField,但这表示它是 IMEI 号码,需要 READ_PHONE_STATE 发送(我没有同意)。我不知道我删除了哪个字段导致没有发送 android id。
    【解决方案2】:

    启用/禁用包括 DeviceID #

    如果您将 READ_PHONE_STATE 权限添加到您的应用程序,但希望您的用户能够禁止在崩溃报告中包含他们的设备 ID,您可以包含以下 CheckBoxPreference:

     <CheckBoxPreference android:key="acra.deviceid.enable"
        android:title="@string/pref_acra_deviceid"
        android:summaryOn="@string/pref_acra_deviceid_enabled"
        android:summaryOff="@string/pref_acra_deviceid_disabled" 
        android:defaultValue="true"/>
    

    不要忘记在 strings.xml 文件中添加所需的字符串。

    https://github.com/ACRA/acra/wiki/AdvancedUsage#wiki-Enable/disable_including_DeviceID

    【讨论】:

    • 那行不通。我没有添加该权限,也从未启用它。我的猜测是“android ID”与设备 ID 不同。唯一有效的是明确调用customReportContent
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2012-03-14
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多