使用Windows资源管理器查找内部应用程序数据

时间:2013-06-07 15:10:15

标签: android

我将XML文件保存到设备的内部存储器中,如下所示:

public void saveFriendData(FriendDetails friend, Context context) throws IOException 
{
        XmlSerializer serializer = Xml.newSerializer();
        StringWriter writer = new StringWriter();
        ContextWrapper wrapper = new ContextWrapper(context);

        File friendDir = wrapper.getDir("friend", Context.MODE_PRIVATE);
        File xmlFile = new File(friendDir, String.valueOf(friend.getId()) + ".xml");
        FileOutputStream os = new FileOutputStream(xmlFile);


        serializer.setOutput(os, "UTF-8");

        //start
        serializer.startDocument(null, true);
        serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);

        serializer.startTag("", "Friend");

        serializer.startTag("", "Id");
        serializer.text(String.valueOf(friend.getId()));
        serializer.endTag("", "Id");

        serializer.startTag("", "ImageUrl");
        serializer.text(friend.get_photoUri());
        serializer.endTag("", "ImageUrl");

        serializer.endTag("", "Friend");
        serializer.endDocument();

        serializer.flush();
        os.close();


    }

一旦我使用了应用程序,我就进入了Windows资源管理器,进入了Android / Data目录,以及我希望保存XML的文件夹不在那里。

有谁可以解释我的XML保存到哪里?文件保存到的目录如下:

/data/data/com.test.test/

谢谢!

2 个答案:

答案 0 :(得分:1)

/data/是私有存储空间,无法通过MTP / Windows资源管理器访问。这是设计和安全功能。

要访问/data/,您需要通过root来绕过它。

Read more here

答案 1 :(得分:0)

Android上的数据是私有的,只有存储数据的应用才能访问数据(只有他们自己的数据)。但是,您可以将文件写入/ data / local / tmp /文件夹。这是我所知道的唯一文件夹(在/ data中),它允许任何人在没有root的情况下进行读写。您可以通过adb shell连接Nexus 4并从那里提取文件。请记住,在ls开始在android shell中工作之前,你必须到达/ data / local / tmp目录。