Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t访问我在PC上的Android应用程序中创建的文件_Java_Android - Fatal编程技术网

Java Can';t访问我在PC上的Android应用程序中创建的文件

Java Can';t访问我在PC上的Android应用程序中创建的文件,java,android,Java,Android,我写了一些应用程序,将一些数据写入SD卡上的外部存储器(实际上我没有SD卡,但路径是/sdcard/map/file。当我用ES file explorer检查手机上的文件时,我可以看到并打开文件,但我在PC上看不到该文件。有人知道可能是什么问题吗 private void createMapFile(String fileName, byte mapBytes[]) throws IOException { File filePath = new File

我写了一些应用程序,将一些数据写入SD卡上的外部存储器(实际上我没有SD卡,但路径是/sdcard/map/file。当我用ES file explorer检查手机上的文件时,我可以看到并打开文件,但我在PC上看不到该文件。有人知道可能是什么问题吗

private void createMapFile(String fileName, byte mapBytes[]) throws IOException {       
            File filePath = new File(Environment.getExternalStorageDirectory().getPath() + "/map/"+ fileName);

            FileOutputStream os = new FileOutputStream(filePath, true);
            os.write(mapBytes);
            os.close();
        }

这是我用来将二进制数据数组写入文件的方法。

它必须在MTP上,对吗?如果您在写入文件后立即浏览SD卡,MTP界面可能不会显示更改。请重试

  • 断开/重新连接手机
  • 重新启动手机/电脑

它必须在MTP上,对吗?如果您在写入文件后立即浏览SD卡,MTP界面可能不会显示更改。请重试

  • 断开/重新连接手机
  • 重新启动手机/电脑

该问题是由Android应用程序的默认文件创建权限与PC的用户权限不兼容引起的。这是Android的已知问题,不容易解决

如果您的Android设备是根设备,您可以通过使用“chmod”linux终端命令更改文件的权限,使文件全局可见,而不是仅对其创建者可见。这将使您的PC能够查看该文件


如果您的设备没有根目录,则您可能必须使用云服务(如Dropbox或Google Drive)将文件移动到云中,然后您的电脑才能访问该文件。

该问题是由于Android应用程序的默认文件创建权限与您电脑的用户权限不兼容造成的。这是一个已知问题n安卓的问题,不容易解决

如果您的Android设备是根设备,您可以通过使用“chmod”linux终端命令更改文件的权限,使文件全局可见,而不是仅对其创建者可见。这将使您的PC能够查看该文件


如果您的设备没有根目录,那么您可能需要使用云服务(如Dropbox或Google Drive)将文件移动到云端,然后您的电脑可以访问该文件。

这将实现以下目的:

File myFile;
...
// myFile creates somewhere here
...
MediaScannerConnection.scanFile(context, new String[]{myFile.getAbsolutePath()}, null, null);

之后,您将立即在连接的PC上看到创建的文件。

这将实现以下功能:

File myFile;
...
// myFile creates somewhere here
...
MediaScannerConnection.scanFile(context, new String[]{myFile.getAbsolutePath()}, null, null);

之后,您将立即可以在连接的PC上看到创建的文件。

您如何编写文件?发布代码。路径
/sdcard/map/
可能不是USB大容量存储的装入点。我发布了将数据写入文件的方法。是的,路径看起来正常。您的意思是在模拟器中看不到文件吗?不,我已连接手机在PC上安装USB,当我在手机上浏览文件时,“地图”是空的。您如何写入文件?请发布代码。路径
/sdcard/map/
可能不是USB大容量存储的装入点。我发布了将数据写入文件的方法。是的,路径看起来正常。您的意思是您无法在模拟器中看到该文件?不,我已通过PC上的USB连接电话,当我在手机上浏览文件时,“map”是空的。除了这个问题已经有了准确的答案外,您的建议还存在两个问题。首先,问题中提到的传统外部存储不存在仅所有者访问权限的概念。其次,云服务有几种替代方案:第一,使用外部存储作为此任务第二,即使在非根设备上使用私有存储,文件的所有者(通常是创建文件的应用程序)能够设置模式位以允许所有人访问。除了这个问题已经有了准确的答案外,您的建议还存在两个问题。首先,问题中提到的传统外部存储不存在仅所有者访问权限的概念。其次,云服务有几种替代方案ices:首先,像这个问题一样使用外部存储,而不是私有存储。其次,即使在非根设备上使用私有存储,文件的所有者(通常是创建它的应用程序)也能够设置模式位以允许每个人访问。