Senden-Dialog und eine weitere Frage

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Murbertus, 03.02.2012.

  1. Murbertus, 03.02.2012 #1
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    Hallo!

    Ich habe wieder mal eine Frage (genauer gesagt sogar 2).

    1.) Meine App speichert auf Knopfdruck den Text einer Textbox auf dem Telefon unter /datadata/com.murbert.test/files/text.txt ab.

    Code:
    String sFilename = "saved.txt";
    				String sWriteFile = sEncodedText;
    
    				try 
    				{
    					java.io.FileOutputStream fos = openFileOutput(sFilename, Context.MODE_WORLD_READABLE);
    					fos.write(sWriteFile.getBytes());
    					fos.close();
    catch
    {
    ...
    Wenn ich jetzt zum Beispielim Browser von Android einen Youtube-Link anklicke, werde ich ja gefragt, mit welcher anderen Applikation ich den Link öffnen kann (Browser oder Youtube). Wenn ich das gespeicherte File versenden möchte: wie erhalte ich den Dialog, mit welcher App der Text versendet werden soll (Mail, GMail, Google+,...)?

    Nun möchte ich aber noch etwas: der User soll ein File (sollte testread.txt heißen) auf dem Rootverzeichnis des internen Speichers ablegen können und dann sollte die App dieses File einlesen und in eine weitere Textbox schreiben.

    Wie gehe ich da vor?

    Vielen Dank!
     
  2. Sentence, 06.02.2012 #2
    Sentence

    Sentence Erfahrener Benutzer

    Beiträge:
    242
    Erhaltene Danke:
    51
    Registriert seit:
    27.01.2011
    Phone:
    S3, S6 Edge
    Moin,
    du willst also ne Email verschicken?

    Starte einfach einen ACTION_SEND Intent.
    Beispiel:

    Code:
    Intent mailIntent = new Intent(Intent.ACTION_SEND);
    mailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    // ggf. Empfänger
    mailIntent.putExtra(Intent.EXTRA_EMAIL,"e@mail.com");
    // Betreff
    mailIntent.putExtra(Intent.EXTRA_SUBJECT,"subject line");
    // Body
    mailIntent.putExtra(Intent.EXTRA_TEXT,"Body of email");
    // Anhang
    mailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File("Filename")));
    
    startActivity(Intent.createChooser(mailIntent ,"Send mail...")); 
    
    MfG
     
    Murbertus bedankt sich.
  3. the_alien, 06.02.2012 #3
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Murbertus bedankt sich.
  4. Murbertus, 06.02.2012 #4
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    @Sentence: danke, das habe ich aber schon selbst gefunden. :) Ich will so einen 'Senden via...''Dialog. Das von the_alien hilft mir schon sehr weiter, danke!

    Zum Thema Einlesen habe ich das gefunden:

    Code:
     public String readFromFile(String filename) throws IOException
    	{
          BufferedReader brRead = new BufferedReader(new FileReader(filename));
    
          String sTmp = null;
          String sResult = "";
          try 
          {
       	   while((sTmp = brRead.readLine()) != null)
       	   {
       		   sResult = sResult + sTmp;
       	   }
          } 
          catch (IOException e) 
          {
       	   e.printStackTrace();
          }
    
          brRead.close();
          return sResult;
    	}
    Der Code an sich ist logisch (habe ihn ein wenig modifiziert), aber wie bestimme ich, welches File eingelesen wird?
     
  5. the_alien, 06.02.2012 #5
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Was meinst du wofür die Variable "filename" da ist? ;)
     
    Murbertus bedankt sich.
  6. Sentence, 06.02.2012 #6
    Sentence

    Sentence Erfahrener Benutzer

    Beiträge:
    242
    Erhaltene Danke:
    51
    Registriert seit:
    27.01.2011
    Phone:
    S3, S6 Edge
    Wo ist der Unterschied zu meinem Code? Lässt du das EXTRA_EMAIL, SUBJECT und TEXT weg ist es genau das gleiche...

    MfG
     
    Murbertus bedankt sich.
  7. Murbertus, 06.02.2012 #7
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    @Sentence: bitte nicht falsch verstehen, das war kein Angriff meinerseits!! Du hast schon Recht, aber ich will einen Share-Dialog, nicht "nur" Mail.

    @alien: Mist, manchemal sieht man den Wald vor lauter Bäumen nicht... :laugh:

    Aber nur ("/sdcard/text.txt") wird zu wenig sein, da der Pfad doch nicht überall gleich ist, oder? Und was hat es mit File extStore = Environment.getExternalStorageDirectory(); auf sich? Bekomme ich da einen String zurück, der nur auf den öffentlichen Speicherbereich verweist und ich kann dann irgendwtwas anhängen (Verzeichnisse, also Unterordner,...)?
     
  8. the_alien, 06.02.2012 #8
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Ja.
     
  9. Murbertus, 07.02.2012 #9
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    Danke, jetzt funktioniert alles, wie es soll. :)
     

Diese Seite empfehlen