2016-05-16 12 views
0

Ich kann derzeit ein Bild in meiner App mit dem Es-Datei-Explorer in einem freigegebenen Windows-Ordner speichern.So speichern Sie ein Bild mit es Datei-Explorer

Aber was ich wissen möchte ist, wie kann ich den Prozess der Auswahl des Ordners beseitigen und im Code angeben?

public void SaveToNetwork() { 
    Intent shareIntent = new Intent(Android.Content.Intent.ActionSend); 

    shareIntent.SetType("*/*"); 
    shareIntent.PutExtra(Android.Content.Intent.ExtraStream, Android.Net.Uri.FromFile(new File(App._dir, App._file.Name))); 

    shareIntent.SetPackage("com.estrongs.android.pop"); 

    StartActivity(shareIntent); 
} 

Ich möchte nicht den Dateiexplorer verwenden. Ich möchte es nur direkt in den Ordner speichern oder zumindest den voreingestellten Ordner in den richtigen Ordner ändern.

+0

Android bietet File-Klasse und outpustream Klasse für diesen Zweck http://developer.android.com/reference/java/io/File.html http://developer.android.com/reference/java/io/OutputStream.html –

Antwort

0

android File Klasse und outpustream Klasse für diesen Zweck bietet folgende ist ein Beispielcode, der die Bitmap recives und es in den angegebenen Ordner speichern und dann Sie Bild der Galerie Inhaltsanbieter hinzufügen

private String savePic(Bitmap bitmapImage) { 
      try { 

       //bitmapImage=drawView.getmCanvasBitmap(); 

       File dir = new File(
         Environment 
           .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), 
         "youfoldername"); 

       dir.mkdir(); 
       Calendar c = Calendar.getInstance(); 
       if (dir.isDirectory()) { 
        String path = dir.getAbsolutePath() + "/youfilename" 
          + c.getTimeInMillis() + ".Jpg"; 
        FileOutputStream fos = new FileOutputStream(path); 
        // Use the compress method on the BitMap object to write image 
        // to 
        // the OutputStream 

        bitmapImage.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
        fos.close(); 


        ContentValues values = new ContentValues(); 
        values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis()); 
        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); 
        values.put(MediaStore.MediaColumns.DATA, path); 
        getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
        Intent intent = new Intent(Intent.ACTION_SEND); 
        intent.setType("image/Jpg"); 
        intent.putExtra(android.content.Intent.EXTRA_STREAM, 
          Uri.parse("file://" + path)); 
        startActivity(intent); 

        return path; 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return ""; 
     } 
+0

Dies funktioniert nicht, wenn ich möchte in einem freigegebenen Windows-Ordner im Netzwerk gespeichert werden – Matt

Verwandte Themen