我正在尝试在共享文件夹中创建一个文件(在emulator running Android和运行Ubunut的主机系统之间):/ mnt / shared / androidShared
我在清单文件中添加了必要的行,没有权限问题:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yalishanda.myapplication">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
然而,在尝试创建文件时,我得到了这个错误:
java.io.FileNotFoundException:/mnt/shared/androidShared/test.txt:open failed:EACCES(Permission denied)
相应的代码:
public void onButtonTap(View v){
String filepath ="/mnt/shared/androidShared/test.txt";
FileOutputStream fos = null;
try {
FileOutputStream outputStream = new FileOutputStream (new File("/mnt/shared/androidShared/test.txt"));
byte[] buffer = "This will be writtent in test.txt".getBytes();
fos.write(buffer, 0, buffer.length);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我也尝试按如下方式逃避反斜杠:
//mnt//shared//androidShared//test.txt"
但错误仍然相同。
为什么我无法创建文件?即使我提前创建文件并尝试写入它也会出现同样的错误。
执行此行时抛出异常:
FileOutputStream outputStream = new FileOutputStream (new File("/mnt/shared/androidShared/test.txt"));
我也试过这些方法,没有取得任何成功:http://paste.ubuntu.com/25364833/
如何在此文件夹中创建文件?
谢谢!
答案 0 :(得分:0)
我在便携式嵌入式设备上运行所有这些
除了可能在root设备上或使用自定义固件之外,您无法实现所需。 Android不直接支持SFTP,SMB / CIFS或任何其他文件系统级别的共享文件解决方案。
即使您修改了设备以支持此功能,您的设备也需要访问SFTP,SMB / CIFS或其他文件服务器。
请注意,您的问题链接到Genymotion的文档,Genymotion是一个模拟器,而不是设备。
另一种方法是运行某种应用服务器(例如,Web服务)而不是文件服务器,并从设备上的应用代码访问该服务器。这不需要对设备固件进行生根或更改。