我如何使我的缓存文件夹可见

时间:2019-02-11 02:47:36

标签: java android

在开发Android应用程序时,我经常将日志文件写入缓存文件以进行调试。然后,我只是插入USB并查看文件。但是,随着对Android所做的更改,除非将它们写入外部文件夹(如下载或文档等),否则很难查看它们。这会导致获得授予正确的写入权限的问题。无论如何,在测试时,我注意到,如果我使用FileOutputStream在缓存中创建文件,则它将公开文件夹,因此我可以轻松看到它们。这似乎也发生在Android O中。

您必须使用上下文创建文件,而我需要在BOOT_COMPLETE上调用的BroadcastReciver中进行操作。有代码:

public class Auto_Start extends BroadcastReceiver{  
@Override
    public void onReceive(Context context, Intent intent) 
    {
       DataOutputStream  swBackup = null;
        File fileBackup = null;
        try
        {
         fileBackup = new File(context.getExternalCacheDir().toString(), "MyFile.Log");
         swBackup = new DataOutputStream(new FileOutputStream(fileBackup, true));
        }
        catch (Exception ex) {  

        }
        finally
        {
            if (!(swBackup == null))
                try {
                    swBackup.flush();

                } catch (Exception ex) { 
                    lvret = false;
                }
            try {

                    swBackup.close();
                } catch (Exception ex) { 
                    lvret = false;
                }

        }
    }

完成后,我可以在Android / data // Cache和files下看到带有Windows的pacakage文件。然后,我可以仅使用Windows来读取和写入文件。删除它们,等等。

您必须使用context.getExternalCacheDir()。toString()否则它不会暴露文件夹。如果使用字符串,则不会产生相同的影响,并且通过Windows资源管理器查看它们时,无法在Android文件夹下看到“ mypackage”。不确定为什么会发生这种情况,但是只要将手机插入我的USB并浏览到它们,暴露这些文件和目录就可以更轻松地检索它们上的文件。

在找到此技巧之前,我永远无法在Android文件夹下看到“我的包裹”。文件在那里,但是文件夹似乎被隐藏了。可能还有另一种取消隐藏这些内容的方法,但是我可以找到它。现在,我可以在测试时只写缓存,让我的客户只需将电话插入他们的计算机,然后复制文件并通过电子邮件发送给我即可。

0 个答案:

没有答案