Android:文件在模拟器中工作,但在设备中出错?

时间:2012-08-04 22:48:01

标签: java android file-upload http-post

我只是尝试通过代码将文件上传到服务器,如果我从模拟器访问文件,它可以正常工作,

路径 data / app / 07312012_135528.3gp 并获得服务器响应 200,确定

但是当我通过设备访问要上传的文件时,会出现错误 400,错误请求 文件存在于 SDCard 中,并通过 File.exists()检查。

我的手机三星Galaxy Ace

HttpPost postRequest = new HttpPost(ServerURL);
MultipartEntity reqEntity = new MultipartEntity();
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "tdsongdata/07312012_135528.3gp");
// path becomes "/mnt/sdcard/tdsongdata/07312012_135528.3gp"

if(yourFile.exists())
{
    reqEntity.addPart("email", new StringBody("esetylo@gmail.com"));
    reqEntity.addPart("password", new StringBody("123"));
    reqEntity.addPart("title", new StringBody("The new file"));         
    reqEntity.addPart("musicData", new FileBody(yourFile));
}

但当我尝试从设备中的相同路径播放时,它会成功播放音频

MediaPlayer mp = new MediaPlayer();
try {
        mp.setDataSource("/mnt/sdcard/tdsongdata/07312012_135528.3gp");
    mp.prepare();
    mp.start(); 
} catch (IllegalArgumentException e) {
        e.printStackTrace();
} catch (IllegalStateException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

我无法理解问题出在哪里,请帮忙

1 个答案:

答案 0 :(得分:1)

将手机语言更改为英语(美国)。重新启动您的设备,然后重试。