我一直在研究儿童监控应用程序,我不知道如何将提取的呼叫记录直接存储/写入外部/内部存储中的文件
答案 0 :(得分:0)
您应该使用文件URI以避免Android安全问题。这样您就可以在其他应用程序中使用这些文件(为它们授予权限)
首先,把它放到你的android-manifest中:
+----------+-----------+---------------------+---------------------+----------+
| Name | WorkOrder | OnSiteStarted | OnSiteSubmitted | Duration |
+----------+-----------+---------------------+---------------------+----------+
| Off-Site | 35 | 2017-02-15 18:32:26 | 2017-02-15 21:11:04 | NULL |
| On-Site | 23022017 | 2017-02-23 20:31:49 | 2017-02-23 20:33:47 | NULL |
| On-Site | 64169086 | 2017-02-22 11:42:40 | 2017-02-22 15:10:17 | NULL |
| Off-Site | 91487689 | 2017-02-11 13:48:11 | 2017-02-11 14:32:37 | NULL |
| On-Site | 91494707 | 2017-02-13 14:39:42 | 2017-02-13 14:49:03 | NULL |
| On-Site | 92810031 | 2017-02-17 09:00:12 | 2017-02-17 09:30:48 | NULL |
| Off-Site | 92810031 | 2017-02-17 09:30:59 | 2017-02-17 09:58:19 | 28 |
| Off-Site | 92810034 | 2017-02-17 10:01:27 | 2017-02-17 10:24:45 | NULL |
| On-Site | 92810039 | 2017-03-03 12:33:41 | 2017-03-03 12:52:37 | NULL |
| Off-Site | 92810039 | 2017-03-03 12:44:52 | 2017-03-03 13:41:35 | 49 |
+----------+-----------+---------------------+---------------------+----------+
然后,您需要在应用程序标记中定义文件提供程序:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/
file_path资源应如下所示:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.yourpackagename.yourapp"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>
然后,无论何时,您都可以获取文件URI。
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="YourAppCacheStorage"
path="YourAppCacheStorage"/>
</paths>
此uri可用于打开输入\输出流到您的文件。
public Uri getUriForFile(File file, Context context) {
final Uri uriForFile = FileProvider.getUriForFile(context,
context.getString(R.string.file_provider_authority),
file);
return uriForFile;
}
您可以在那里获得更多信息:https://developer.android.com/reference/android/support/v4/content/FileProvider.html
答案 1 :(得分:-1)
正如您在问题中所评论的那样,这是一个非常广泛的问题,但请看一下这个谷歌开发者链接
https://developer.android.com/training/basics/data-storage/files.html
它会让您清楚地了解您的问题,并且您也可以通过详细的代码获得答案
希望它有所帮助:)