存储Gmail可访问Android应用程序日志的最佳实践

时间:2014-02-03 10:05:21

标签: android

我想要什么

我想为我的应用程序存储日志,因此当我收到错误报告时,日志会附加到电子邮件中。

问题

根据Android文档,您不一定希望用户查看的文件或其他要访问的应用程序需要存储在内部存储中。但是,有些应用程序我想访问它,例如Gmail和其他电子邮件应用程序,当用户向我发送错误报告时,我不一定希望用户可以随时免费访问它。

可能的解决方法

  1. 我只是咬紧牙关并从一开始就将日志存储在外部存储上,并允许用户访问它们。但是,如果没有可用的外部存储空间,则会导致问题。
  2. 我将日志存储在内部存储中,如果有空间,则始终可用,并在每次提交错误报告时将其复制到外部存储。然而,这违背了私人概念。
  3. 我的问题

    如何在内部存储文件/文件,还允许它们为Gmail等应用程序制作附件?

    保存到外部存储解决方案是一个好主意还是一个愚蠢的?

    感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

将记录的信息保密为您的应用。还要考虑从日志文件中过滤掉敏感信息(即不记录用户名,密码等)。接下来在您的应用中构建“报告错误”选项,您可以在其中访问此信息。

无需公开此信息。

同时验证critercism之类的替代方案,并考虑是否确实需要将此类工作用于解决此问题。知道默认的android bug报告有这样的选项,并且Developer控制台有很多关于发生崩溃的信息。

答案 1 :(得分:0)

想出来。

您使用的是Android FileProvider。

将其添加到应用程序代码中的manifest.xml

         <provider 
             android:name="android.support.v4.content.FileProvider"
             android:authorities="insert_application_package_name_plus_identifier"
             android:exported="false"
             android:grantUriPermissions="true"
             android:readPermission="insert_application_package_name_plus_identifier.READ">
             <meta-data
                 android:name="android.support.FILE_PROVIDER_PATHS"
                 android:resource="@xml/provider_paths"/>
         </provider>

然后,您需要在名为res/xml的{​​{1}}中创建新的资源xml文件。

provider_paths.xml

然后将它们附加到电子邮件中。

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="logs"/>
</paths>

我希望这有助于某人。