2013-12-11 68 views
0

我有以下代碼共享文件。無法共享文件(通過Gmail或Google Drive)

這一切似乎做工精細,

Gmail中附帶的附件打開,

但是當我點擊發送Gmail停止,並給出了一個錯誤Unfortunately Gmail has stopped

與谷歌驅動器一樣,一切似乎工作正常,但最終我得到:谷歌驅動器的 Upload failed

非常感謝任何幫助!

share.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      fileuri=Utility.downloadDb(MainActivity.this); 
      if(fileuri!=null){ 
       Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
       sharingIntent.setType("text/plain"); 
       sharingIntent.putExtra(Intent.EXTRA_STREAM, fileuri); 
       startActivity(sharingIntent); 
      } 
     } 
    }); 

哪裏Utility.downloadDb(MainActivity.this); 是:

public static Uri downloadDb(Context context) { 
    DatabaseHandler db= new DatabaseHandler(context); 
    ArrayList<Word> list=new ArrayList<Word>(); 
    Uri fileuri=null; 
    list.clear(); 
    list.addAll(db.getAllWords()); 
    File path = Environment 
      .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 
    File file = new File(path, "db.csv"); 
    try { 
     file.createNewFile(); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
    try { 
     // Make sure the Pictures directory exists. 
     path.mkdirs(); 

     FileWriter outFile = new FileWriter(file); 
     PrintWriter out = new PrintWriter(outFile); 
     out.print("PICTURE NAME"); 
     out.print(","); 
     out.print("WORD NUMBER"); 
     out.print(","); 
     out.print("LEFT"); 
     out.print(","); 
     out.print("TOP"); 
     out.print(","); 
     out.print("RIGHT"); 
     out.print(","); 
     out.println("BOTTOM"); 

     for(int i=0;i<list.size();i++){ 
      out.print(list.get(i).pic); 
      out.print(","); 
      out.print(Integer.toString(list.get(i).wordno)); 
      out.print(","); 
      out.print(Integer.toString(list.get(i).beginx)); 
      out.print(","); 
      out.print(Integer.toString(list.get(i).beginy)); 
      out.print(","); 
      out.print(Integer.toString(list.get(i).endx)); 
      out.print(","); 
      out.println(Integer.toString(list.get(i).endy)); 


     } 

     out.close(); 
     Toast.makeText(context, "SAVED TO: " +file.getAbsolutePath(), Toast.LENGTH_LONG).show(); 
     fileuri=Uri.parse(file.getAbsolutePath()); 
    } catch (IOException e) { 
     // Unable to create file, likely because external storage is 
     // not currently mounted. 
     Log.e("ExternalStorage", "Error writing " + file, e); 
    } 
    return fileuri; 
} 
+0

你能找到並打開文件嗎? (也許試着手動分享它,看看會發生什麼......?) – jpm

+0

@jpm謝謝jpm文件被創建並可以通過Gmail「手動」發送 –

+0

mhh。我不知道是否有區別,但也許嘗試Uri.fromFile(文件)而不是Uri.parse()...這就是我的做法,它的工作原理......? – jpm

回答

1

發現的解決方案!!!!

我認爲這可能對其他人有用!

得到URI使用: fileuri=Uri.fromFile(file);

NOT 了fileURI = Uri.parse(file.getAbsolutePath());

相關問題