2014-10-03 165 views
2

我正在尝试制作一个演示应用程序。亚马逊s3文件从android下载

从我的s3服务器下载图像到我的手机存储卡。

我尝试了演示代码并写下了以下内容。但是,只要我在手机上运行,​​应用程序部队就会关闭。 任何帮助,将不胜感激。

public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
File f=null;  
    try{ 
    File dir= Environment.getExternalStorageDirectory(); 
f= new File(dir,"test.jpg"); 
    } 
    catch(Exception e) 
    { 
     Toast.makeText(getApplicationContext(), "Exception", Toast.LENGTH_SHORT).show();    
    } 
    AWSCredentials creden=new BasicAWSCredentials(accessKey,secretKey); 
    AmazonS3Client s3Client=new AmazonS3Client(creden); 

    ObjectMetadata obj= s3Client.getObject(new GetObjectRequest("adj-temp","funflick_1.jpg"),f); 


} 
+0

请张贴与力闭合的logcat的输出,所以我们可以看到确切的异常细节? – Peter 2014-10-03 08:01:32

+0

没有错误很难说。可能是多种事情..主线程外部存储和网络权限的缺乏是我可以从代码 – 2014-10-03 19:14:40

+0

一眼看出来的最好的猜测也检查读写SD卡的权限! – 2015-01-30 09:36:16

回答

1

试试这个它会工作快乐编码

{ 
     String str_FilePathInDevice = "/sdcard/" + "/" 
       + "RestoreFolderName" + "/" + "filname.extention"; 

     File file = new File(str_FilePathInDevice); 

     String str_Path = file.getPath().replace(file.getName(), ""); 
     File filedir = new File(str_Path); 

     try { 
      filedir.mkdirs(); 
     } catch (Exception ex1) { 
     } 
     S3Object object = s3Client.getObject(new GetObjectRequest(
       "BucketName", "keyName")); 

     BufferedReader reader = new BufferedReader(new InputStreamReader(
       object.getObjectContent())); 
     Writer writer = new OutputStreamWriter(new FileOutputStream(file)); 

     while (true) { 
      String line = reader.readLine(); 
      if (line == null) 
       break; 
      writer.write(line + "\n"); 
     } 
    writer.flush(); 
    writer.close(); 
    reader.close(); 
}