Sharing tramite WhatsApp,Facebook,Gmail,ect... | Forum Android | AndroidWorld

ATTENZIONE:
L’Utente assume la totale responsabilità anche giuridica per ogni attività da lui svolta e per ogni contenuto pubblicato e/o scambiato. (leggi le condizioni d’uso).

Si invitano gli Utenti a non pubblicare o scambiare alcuna informazione che permetta di risalire, anche indirettamente, alla propria identità o all’identità di terzi (nome, cognome, residenza, email…) e divulgare alcun tipo di dato sensibile proprio o di terzi.

X
  1. #1
    Baby Android
    Registrato dal
    Nov 2014
    Residenza
    Coventry
    Dispositivo
    Samsung Galaxy Note
    Operatore
    TIM
    Messaggi
    5
    Grazie!
    2
    Ringraziato 0 volte in 0 post

    Sharing tramite WhatsApp,Facebook,Gmail,ect...

    Salve a tutti,

    per prima cosa chiedo scusa ai moderatori poichè prima di aprire questo post ho letto tutti i post utili alla risoluzione del mio problema ma senza successo.Dato che sono alle primissime armi,e senza una conoscenza approfondita di Java,ho dovuto prendere in "prestito" il codice che trovato in rete.

    Progetto creato con Eclipse API 8 a API 16:

    Questo è il codice Java:


    condividi.setOnClickListener(new View.OnClickListener() {
    @Override

    public void onClick(View v) {

    final Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("audio/mp3");
    shareIntent.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("android.resource://com.danko74.suoni/raw" +R.raw.biv));
    startActivity(Intent.createChooser(shareIntent, "Condividi attraverso:"));


    }
    });


    La cosa che volevo capire,prima di rinchiudermi in manicomio " title="Adirato" class="smiley">, è perchè tramite Gmail riesco ad allegare il file .Mp3 e invece WhatsApp mi restituisce "Condivisione fallita,riprova"?
    Ho provato anche a cambiare il Codice (Java): [Seleziona]
    shareintent.setType con ("audio/*")oppure ("audio/mpeg3") ma niente.
    Qualcuno mi dirà:"...Ma devi prima incapsulare il file .mp3 in un tipo file e poi rigirarlo alla stringa shareIntent.PutExtra....ci ho provato ma non credo di saperlo fare...non maneggio ancora bene InputStream e OutputStream se sono quelli che dovrei utilizzare.
    Che faccio mi impicco??

    Aiutatemi vi prego!!
    Grazie

  2. #2
    Android
    Registrato dal
    Mar 2014
    Residenza
    Trapani
    Dispositivo
    Nexus 10
    Operatore
    H3G
    Messaggi
    74
    Grazie!
    0
    Ringraziato 14 volte in 12 post
    Quote Originariamente inviato da danko74 Visualizza il messaggio
    Salve a tutti,
    perchè tramite Gmail riesco ad allegare il file .Mp3 e invece WhatsApp mi restituisce "Condivisione fallita,riprova"?
    Perché Gmail è un client di posta e via mail non puoi mandare file binari, tutti i file vengono prima encodati, di solito in base64, per convertirli in testo, poi il client ricevente fa il decoding e ti ricompone il file. Questo significa che via mail puoi mandare sostanzialmente qualunque tipo di file, purché sia codificato in modo standard.
    Whatsapp invece tenta di mandare il file binario vero e proprio, che ha il vantaggio di essere meno dispendioso (l'encoding in base 64 di solito aumenta la dimensione del file), ma se non è un tipo di file riconosciuto in automatico c'è caso che ti dia problemi.
    In ogni caso qua dovresti trovare la soluzione:

    android - Share raw resource via WhatsApp - Stack Overflow

  3. I seguenti utenti hanno ringraziato Ettohg per aver trovato utile questo post:

    danko74 (07-11-2014)

  4. #3
    Baby Android
    Registrato dal
    Nov 2014
    Residenza
    Coventry
    Dispositivo
    Samsung Galaxy Note
    Operatore
    TIM
    Messaggi
    5
    Grazie!
    2
    Ringraziato 0 volte in 0 post
    Grazie Ettohg...poi ieri notte o meglio stamattina verso le 2 sono riuscito a risolvere guardando proprio quel post che mi hai suggerito tu stamattina...comunque ho fatto delle modifiche di sintassi poichè mi dava errore di dichiarazione usandolo cosi' com'è...adesso devo rimboccarmi le maniche e creare i context menu cosi ad ogni pressione prolungata gli dò Condivisione e salva come suoneria...
    Grazie per essere stato cosi' veloce a rispondermi...

    Ciao

    - - - Aggiornato - - -

    Rieccomi....allora il codice per Salvare come suoneria e Condividere funzionano se presi singolarmente...ma dato che io ho piu' pulsanti che restituiscono suoni,ho implementato un contextmenu per ogni pulsante con due 2 voci "Condividi" e "Salva come suoneria".
    Adesso il problema è che quando attivo il Contexmenu e scelgo una delle voci non mi dà nulla.
    Il Codice su un pulsante:

    acasatoia.setOnClickListener(new View.OnClickListener() {
    public boolean onContextItemSelected(MenuItem item) {
    if(item.getTitle()=="Salva come suoneria")

    {
    Toast t=Toast.makeText(SecondActivity.this,"File salvato in cartella Suonerie", Toast.LENGTH_LONG);
    t.show();
    File dest = Environment.getExternalStoragePublicDirectory(Envi ronment.DIRECTORY_RINGTONES);
    InputStream in = getResources().openRawResource(R.raw.acasatoia);


    try
    {
    OutputStream out = new FileOutputStream(new File(dest, "A casa toia.mp3"));
    byte[] buf = new byte[1024];
    int len;
    while ( (len = in.read(buf, 0, buf.length)) != -1)
    {
    out.write(buf, 0, len);
    }
    in.close();
    out.close();
    }
    catch (Exception e) {}


    }
    else if(item.getTitle()=="Condividi")

    {

    File dest = Environment.getExternalStorageDirectory();
    InputStream in = getResources().openRawResource(R.raw.acasatoia);


    try
    {
    OutputStream out = new FileOutputStream(new File(dest, "A Casa toia.mp3"));
    byte[] buf = new byte[1024];
    int len;
    while ( (len = in.read(buf, 0, buf.length)) != -1)
    {
    out.write(buf, 0, len);
    }
    in.close();
    out.close();
    }
    catch (Exception e) {}





    final Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("audio/mp3");
    shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(Environment.getExternalStorageDirectory( ).toString() + "/A Casa toia.mp3"));
    startActivity(Intent.createChooser(shareIntent, "Condividi attraverso:"));


    }

    else {return false;}
    return true;
    }



    @Override
    public void onClick(View v) {
    SoundManager.play(0);

    }



    });

    Eclipse mi da' questo alert:
    The method onContextItemSelected(MenuItem) from the type new View.OnClickListener(){} is never used locally al primo rigo...

    Sbaglierò mica nel posizionare il codice?
    Aiutatemi please

  5. #4
    Android
    Registrato dal
    Mar 2014
    Residenza
    Trapani
    Dispositivo
    Nexus 10
    Operatore
    H3G
    Messaggi
    74
    Grazie!
    0
    Ringraziato 14 volte in 12 post
    Quote Originariamente inviato da danko74 Visualizza il messaggio
    acasatoia.setOnClickListener(new View.OnClickListener() {
    public boolean onContextItemSelected(MenuItem item) {
    [...]
    Sbaglierò mica nel posizionare il codice?
    Sì :-)
    Hai sostanzialmente messo una funzione dentro una dichiarazione. Quella funzione però non è associata ad alcun evento, quindi ti dice che non è usata perché è proprio così, nessuno la chiama.
    Il mio suggerimento se vuoi aggiungere più di una voce nel menù di condivisione è di suddividere la cosa, ovvero fai clickare una volta, poi fai comparire una ulteriore "finestra" (che può essere una activity ovviamente, ma ti suggerisco un pop-up di qualche tipo) e poi far andare avanti l'utente da lì.

  6. #5
    Baby Android
    Registrato dal
    Nov 2014
    Residenza
    Coventry
    Dispositivo
    Samsung Galaxy Note
    Operatore
    TIM
    Messaggi
    5
    Grazie!
    2
    Ringraziato 0 volte in 0 post
    Quote Originariamente inviato da Ettohg Visualizza il messaggio
    Sì :-)
    Hai sostanzialmente messo una funzione dentro una dichiarazione. Quella funzione però non è associata ad alcun evento, quindi ti dice che non è usata perché è proprio così, nessuno la chiama.
    Il mio suggerimento se vuoi aggiungere più di una voce nel menù di condivisione è di suddividere la cosa, ovvero fai clickare una volta, poi fai comparire una ulteriore "finestra" (che può essere una activity ovviamente, ma ti suggerisco un pop-up di qualche tipo) e poi far andare avanti l'utente da lì.
    Ok...però devo capire perchè sono troppo novizio...

    Credevo che ci stesse un modo per poter utilizzare il context menu con un paio di funzioni tipo questo esempio che ho trovato in rete...ma dovrei passargli qualche argomento...ma li' la cosa si fà complicatuccia...

    @Override
    public boolean onContextItemSelected(android.view.MenuItem item) {
    if(item.getTitle()=="Salva Suoneria"){function1(item.getItemId());}
    else if (item.getTitle()=="Condividi") {function2(item.getItemId());}
    else {return false;}
    return true;
    }
    public void function1(int id){
    if (saveas(soundArray[id])){
    Toast.makeText(getActivity(), "Il File è stato impostato come suoneria", Toast.LENGTH_LONG).show();
    // se la suoneria viene salvata
    }
    else {
    Toast.makeText(getActivity(), soundArray[id] + "Non è stato possibile salvare il file", Toast.LENGTH_LONG).show();
    // se la suoneria non viene salvata
    }
    }
    //Salva il file nella cartella
    public boolean saveas(int ressound){ //qui inserisci il codice per salvare....
    }
    public void function2(int id){
    //codice per la condivisione
    }

Discussioni simili

  1. Scaricare File da siti di file sharing(Megaupload e affini)
    Da eGo nel forum Vodafone Ideos / Huawei Ideos
    23-01-2013
    12Risposte
  2. App File Sharing PC
    Da PePpUzZo nel forum App Inventor
    06-12-2012
    0Risposte
  3. 16-07-2012
    0Risposte
  4. Whatsapp: Visualizzazione contatti mancante incona whatsapp
    Da montechristian nel forum Applicazioni
    03-10-2011
    3Risposte
  5. Wifi Sharing e gestione batteria in generale
    Da ciollino nel forum Samsung Galaxy S II / 2 (i9100)
    18-07-2011
    2Risposte

Segnalibri

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  

Search Engine Friendly URLs by vBSEO 3.6.1