我想要什么
我想为我的应用程序存储日志,因此当我收到错误报告时,日志会附加到电子邮件中。
问题
根据Android文档,您不一定希望用户查看的文件或其他要访问的应用程序需要存储在内部存储中。但是,有些应用程序我想访问它,例如Gmail和其他电子邮件应用程序,当用户向我发送错误报告时,我不一定希望用户可以随时免费访问它。
可能的解决方法
我的问题
如何在内部存储文件/文件,还允许它们为Gmail等应用程序制作附件?
保存到外部存储解决方案是一个好主意还是一个愚蠢的?
感谢任何帮助。
答案 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>
我希望这有助于某人。