Autore Topic: Passaggio dati "app sottostante"  (Letto 1420 volte)

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Passaggio dati "app sottostante"
« il: 21 Settembre 2013, 10:06:36 CEST »
0
Buongiorno ragazzi,
al solito credo di essermi ammattita perche' non riesco a fare una cosa che mi pare semplicissima: mi trovo in un'app (la mia, quella che sto sviluppando), e voglio che l'immagine tappata vada a finire nella chat che ho aperta sotto.
La mia app contiene una chathead che si mostra solo in presenta delle chat. Se ci premo sopra si apre sotto forma di Dialog. Compaiono le immagini su cui io posso tappare per inviarle alla chat che ho in corso.
Non voglio fare la createChooser con l'intent (mi aprirebbe la finestra con una scelta di applicazioni possibili...), ma proprio ottenere l'istanza in corso (e che per forza di cose in un ipotetico stack dei programmi e' "circa sotto" la mia dialog).
La cosa piu' vicina che ho trovato e' la seguente:
Codice (Java): [Seleziona]
        PackageManager pm = context.getPackageManager();
                        Intent sendIconInt = pm.getLaunchIntentForPackage();
                        // .... inserisco immagine nell'intent..
                        view.getContext().startActivity(sendIconInt);
ecco ma questo nn mi apre la chat, mi apre - nel caso di whatsapp - l'elenco delle chat. Io voglio tornare alla schermata su cui ero ferma.
 o_O Non capisco dove o cosa sbaglio e dopo due giorni di testare nel muro, scrivo a voi, o sommi!

grazie per tutto l'aiuto che vorrete/potrete darmi
buon week end
ana

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Passaggio dati "app sottostante"
« Risposta #1 il: 21 Settembre 2013, 10:47:46 CEST »
0
se non sbaglio, whatsapp non ti consente di aprire direttamente la chat
infatti anche se richiami il receiver per inviare del testo, ti apre la schermata con tutte le chat, e poi a chi mandare il messaggio

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati "app sottostante"
« Risposta #2 il: 21 Settembre 2013, 11:59:42 CEST »
0
Ho provato con Skype e quell'istruzione comunque mi richiama la schermata della chat e non quella corrente.
Mi sono accorta di aver commesso un errore nel scriverla, vi riporto qui come funziona correttamente:
Codice (Java): [Seleziona]
PackageManager pm = context.getPackageManager();
                        sendIconInt = pm.getLaunchIntentForPackage(MainActivity.getFocusApp());

dove
Codice (Java): [Seleziona]
MainActivity.getFocusApp()e' la stringa che contiene il nome dell'app (qualcosa ti com.pack.etc)

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati "app sottostante"
« Risposta #3 il: 23 Settembre 2013, 12:50:48 CEST »
0
Ciao ragazzi e buona nuova settimana,
le cose si sono evolute. Ora riesco ad ottenere la conversazione (in whatsapp funziona, su skype ho problemi di access denial excepion)
Mi rimane il problema di non riuscire a passare l'intent alla conversazione. Non so se ricordate.. io sono quella che sempre a mezzo chat doveva inviare un'immagine come allegato.
Ecco questo e' l'altro caso che devo implementare: condividere l'immagine nella conversazione in corso.
quest il codice:
Codice (Java): [Seleziona]
public void onClick(View view) {
                                sendIconInt = new Intent(Intent.ACTION_ATTACH_DATA);
                                sendIconInt.setComponent(MainActivity.getFocusApp());
                            sendIconInt.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                sendIconInt.setType("image/png");
                String imgToSend = imgList.get(view.getId()).getImgName();
                File externalRoot = Environment.getExternalStorageDirectory();
                if( externalRoot != null ){
                        File tempDir = new File(externalRoot, imgToSend.substring(5));
                        sendIconInt.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(tempDir) );
                }
                view.getContext().startActivity(sendIconInt);  
            }
dove
Codice (Java): [Seleziona]
sendIconInt.setComponent(MainActivity.getFocusApp());contiene il component che si riferisce direttamente alla conversazione che ho aperta.

Non ho nessun tipo di errori: passo dalla mia finestra dialog cn le immagini, ad una schermata nera ed infine alla conversazione ma senza condivsione..
potete aiutarmi? devo copiarvi altro codice?
vi ringrazio per l'aiuto
a presto
anna

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati "app sottostante"
« Risposta #4 il: 30 Settembre 2013, 12:23:12 CEST »
0
nessuno e' in grado di aiutarmi?
grazie
anna

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:Passaggio dati "app sottostante"
« Risposta #5 il: 30 Settembre 2013, 12:44:02 CEST »
0
Nel LogCat vedi qualcosa ? Potresti incollarlo qui ?
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati "app sottostante"
« Risposta #6 il: 30 Settembre 2013, 12:48:48 CEST »
0
Il LogCat non mi da alcun tipo di errore.. posso far stampare qualcosa che possa essere utile?
grazie
anna

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:Passaggio dati "app sottostante"
« Risposta #7 il: 30 Settembre 2013, 12:59:04 CEST »
0
Uhm, sei sicura ? Molte volte problemi di questo tipo si riflettono in voci di LogCat non direttamente visibili se filtri in base al tuo packagename.

Proverei a loggare qualcosa prima e dopo la chiamata in modo da avere un intervallo di LogCat da analizzare...
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati \\\"app sottostante\\\"
« Risposta #8 il: 30 Settembre 2013, 13:41:05 CEST »
0
ok grazie
ora provo.
Ho il logCat impostato su verbose ma riprovare un'altra volta, non mi costa nulla :)
grazie
a tra poco
anna

Post unito: 30 Settembre 2013, 16:26:22 CEST
ecco qui il LogCat che ho prodotto:
09-30 16:16:57.181: I/[POST_RESELECT](15725): NOW IS XXX NOT COMPOSING.....
09-30 16:16:57.271: W/IInputConnectionWrapper(15725): showStatusIcon on inactive InputConnection
09-30 16:16:57.271: W/IInputConnectionWrapper(15725): InputConnection = com.android.internal.widget.EditableInputConnection@405e0990, active client = false
09-30 16:17:07.171: E/ContentProvider(15725): mdpi/crazy-stressed-out of head-dumb.png
09-30 16:17:07.181: E/ContentProvider(15725): 13
09-30 16:17:07.181: I/[POST_RESELECT](15725): [spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$START@40142bf8,-1,0,-1,0)
09-30 16:17:07.181: I/[POST_RESELECT](15725): [spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$END@400d8c28,-1,0,-1,0)
09-30 16:17:07.181: I/[POST_RESELECT](15725): NOW IS XXX NOT COMPOSING.....

ho preso tutto quello che accade tra una digitazione e l'altra nella conversazione su whatsapp.
" E/ContentProvider(15725)" sono i tag che ho usato per indicate le due stampe che faccio io prima e dopo l'intent.. in questo modo:
Codice (Java): [Seleziona]
 image.setOnClickListener(new View.OnClickListener(){
                        @Override
                        public void onClick(View view) {
                                sendIconInt = new Intent(Intent.ACTION_ATTACH_DATA);
                                sendIconInt.setComponent(MainActivity.getFocusApp());
                                sendIconInt.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                sendIconInt.setType("image/png");
                                String imgToSend = imgList.get(view.getId()).getImgName();
                                Log.e("ContentProvider",imgToSend);
                File externalRoot = Environment.getExternalStorageDirectory();
                if( externalRoot != null ){
                        File tempDir = new File(externalRoot, imgToSend.substring(5));
                        sendIconInt.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(tempDir) );
                }
                view.getContext().startActivity(sendIconInt);  
                Log.e("ContentProvider", ""+view.getId());
            }
                });

(ho messo log.e per questioni di lettura )
grazie a chi potra' aiutarmi
anna

Post unito: 01 Ottobre 2013, 10:40:34 CEST
ho provato a fare in un altro modo ancora:
Codice (Java): [Seleziona]
imgs.setOnItemClickListener(new OnItemClickListener(){
                        @Override
                        public void onItemClick(AdapterView<?> view, View arg1, int arg2,long arg3) {
                                Intent sendIconInt = getIntent().setComponent(MainActivity.getFocusApp());
                                sendIconInt.setAction(Intent.ACTION_SEND);
                                sendIconInt.setType("image/png");
                                String imgToSend = gAdapter.imgList.get(arg1.getId()).getImgName();
                                Log.e("", imgToSend);
                                File externalRoot = Environment.getExternalStorageDirectory();
                if( externalRoot != null ){
                        File tempDir = new File(externalRoot, imgToSend.substring(5));
                        sendIconInt.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(tempDir) );
                        //Log.e("", "no null");
                }
                startActivity(sendIconInt);  
            }                  
                });
ma anche in questo modo non funziona..

I logcat mostrano :
10-01 10:38:41.839: E/(6198): android.intent.action.SEND
10-01 10:38:41.849: I/[POST_RESELECT](6198): [spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$START@40142bf8,-1,0,-1,0)
10-01 10:38:41.849: I/[POST_RESELECT](6198): [spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$END@400d8c28,-1,0,-1,0)
10-01 10:38:41.849: I/[POST_RESELECT](6198): NOW IS XXX NOT COMPOSING.....
10-01 10:38:42.530: W/IInputConnectionWrapper(6198): showStatusIcon on inactive InputConnection
10-01 10:38:42.540: W/IInputConnectionWrapper(6198): InputConnection = com.android.internal.widget.EditableInputConnection@405accd8, active client = false
« Ultima modifica: 01 Ottobre 2013, 10:40:34 CEST da Anna Gabrielli, Reason: Merged DoublePost »

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:Passaggio dati "app sottostante"
« Risposta #9 il: 01 Ottobre 2013, 12:19:02 CEST »
0
Ciao

Scusa, ma con il post in merge con il precedente il forum non mi segnalava che avevi aggiunto il post...

Sono un po' rinco oggi (oggi ? ;) ) ma non vedo il punto in cui vai a copiare l'immagine in un'area provvisoria sull'external storage. Quando ho fatto la parte di Sharing dell'applicazione, ho dovuto copiare il file immagine per lo Sharing (ma idem per allegati da passare ad altre app) in una parte dello storage leggibile dalle altre app, altrimenti semplicemente non riuscivano a vederla! Intendo, che se l'immagine è in un folder privato della app, una app che non sia superuser non può andare neanche a leggere, per ragioni di sicurezza.
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati "app sottostante"
« Risposta #10 il: 01 Ottobre 2013, 13:41:12 CEST »
0
ti copio un po' di materiale cosi' il quadro e' piu' ampio.
l onItemclick e onItemLongClick sono legati ad una gridview (chiamata "imgs") di immagini. Le due classi anonime sn legate agli elementi della griglia ne due metodi che ti allego sotto e che sono nel MainActivity. java (il send as attachment funziona):
Codice (Java): [Seleziona]
imgs.setOnItemClickListener(new OnItemClickListener(){
                        @Override
                        public void onItemClick(AdapterView<?> view, View arg1, int arg2,long arg3) {
                                Intent sendIconInt = getIntent().setComponent(MainActivity.getFocusApp());
                                sendIconInt.setAction(Intent.ACTION_SEND);
                                sendIconInt.setType("image/png");
                                String imgToSend = gAdapter.imgList.get(arg1.getId()).getImgName();
                                File externalRoot = Environment.getExternalStorageDirectory();
                if( externalRoot != null ){
                        File tempDir = new File(externalRoot, imgToSend.substring(5));
                        sendIconInt.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(tempDir) );
                }
                startActivity(sendIconInt);  
            }                  
                });
                imgs.setOnItemLongClickListener(new OnItemLongClickListener(){
                        public boolean onItemLongClick(AdapterView<?> view, View arg1,int position, long id) {
                                selected = position;
                                if( gAdapter.imgList.get(arg1.getId()).getFavourite() == 0 ){
                                        AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create();
                                        LayoutInflater lfb = ((MainActivity)view.getContext()).getLayoutInflater();
                                        View menuLayout = lfb.inflate(R.layout.menu, null);
                                        addFav = (RadioButton)menuLayout.findViewById(R.id.addFav);
                                        sendAsAtt = (RadioButton)menuLayout.findViewById(R.id.sendAtt);
                                        dialog.setView(menuLayout);
                                        dialog.setTitle("Select an action");
                                        dialog.setMessage("Choose");
                                        dialog.setButton(Dialog.BUTTON_POSITIVE,"Done", new DialogInterface.OnClickListener(){
                                @Override
                                public void onClick(DialogInterface dialog, int which){
                                        if(addFav.isChecked()){
                                            Toast.makeText(getApplicationContext(), "Add to Favorities", Toast.LENGTH_LONG).show();
                                           //arg1.setBackgroundResource(R.drawable.fav_list);
                                                        if( gAdapter.imgList.get(selected).getFavourite() == 0 ){
                                                                gAdapter.imgList.get(selected).setFavourite(1);
                                                                gAdapter.favImgList.add( gAdapter.imgList.get(selected) );
                                                                gAdapter.hasFavourite++;
                                                        }
                                        }
                                        else if(sendAsAtt.isChecked()){
                                                //Toast.makeText(getApplicationContext(), "Send as Attachment", Toast.LENGTH_LONG).show();
                                                Intent sendIconInt = new Intent();
                                                sendIconInt.setAction(Intent.ACTION_SEND);
                                                sendIconInt.setType("image/png");
                                                String imgToSend = (gAdapter.imgList.get(selected).getImgName());
                                                File externalRoot = Environment.getExternalStorageDirectory();
                                                if( externalRoot != null ){
                                                        File tempDir = new File(externalRoot, imgToSend.substring(5));
                                                        sendIconInt.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(tempDir) );
                                                }
                                                                        startActivity(sendIconInt);
                                            }
                                }
                           });
                                        dialog.setButton(Dialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener(){
                                public void onClick(DialogInterface dialog, int which){
                                        dialog.dismiss();
                                }
                            });
                                       
                            dialog.show();
                                        return true;
                                }
                                return false;
                        }
                });

l'adatper per la grid l ho in precedenza settato cosi:
Codice (Java): [Seleziona]
gAdapter = new EmoticonsGridAdapter(this.getApplicationContext());
                        imgs.setAdapter(gAdapter);
                       

e' l'adapeter che si occupa della memorizzazione su externalstorage delle immagini nel seguente modo:
Codice (Java): [Seleziona]
public View getView(int position, View convertView, ViewGroup parent){
                View view = null;
                ImageView image = new ImageView(context);
                image.setLayoutParams(new GridView.LayoutParams(50,50));       
                image.setScaleType(ImageView.ScaleType.FIT_XY);
                               
                if (view == null) {
                LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.activity_main, null);
            }
                grid = (GridView)view.findViewById(R.id.emoticons_grid);
                try {
                in = mgr.open(imgList.get(position).getImgName());
                File file = new File(Environment.getExternalStorageDirectory(), imgList.get(position).getImgName().substring(5));
                file.createNewFile();
                        FileOutputStream out = new FileOutputStream(file,false);
                        byte[] buff = new byte[1024];
                        int read = 0;
                        try {
                            while ((read = in.read(buff)) > 0) {
                                        out.write(buff, 0, read);
                                }
                        } finally {
                            in.close();
                            out.close();
                        }
                        in = mgr.open(imgList.get(position).getImgName());
                if (imgList.get(position) != null){
                        pxImage = BitmapFactory.decodeStream(in, null, null);
                                image.setImageBitmap(pxImage);
                                image.setId(position);
                        }
            } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        return image;
        }

io pensavo che come viene effettuato la send as attachment, non dovessi avere problemi e che quindi sia in grado di pescare le immagini (non ho programmato da nessuna parte per ora la loro cancellazione e sn in un'area libera della memoria sd

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:Passaggio dati "app sottostante"
« Risposta #11 il: 01 Ottobre 2013, 17:26:14 CEST »
+1
Ammetto di non aver approfondito molto il tema, ma nella mia app ho un meccanismo analogo, però per lanciare il trasferimento uso un Intent Chooser

Citazione
public static final String ACTION_SEND
Added in API level 1
Activity Action: Deliver some data to someone else. Who the data is being delivered to is not specified; it is up to the receiver of this action to ask the user where the data should be sent.

When launching a SEND intent, you should usually wrap it in a chooser (through createChooser(Intent, CharSequence)), which will give the proper interface for the user to pick how to send your data and allow you to specify a prompt indicating what they are doing.

Nel mio codice per esempio faccio
Codice (Java): [Seleziona]
                                File srcFile = new File(all.getPathName());
                                File destFile = new File(pathNameDest);
                                FileUtils.copyFile(srcFile, destFile);

                                Intent intent = new Intent();
                                intent.setAction(android.content.Intent.ACTION_SEND);
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(destFile));
                                intent.setType(all.getMimeType());
                                startActivity(Intent.createChooser(intent, getResources()
                                                .getString(R.string.share_with)));


Tu come scegli l'applicazione a cui deve arrivare il file immagine ?

EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati \\\"app sottostante\\\"
« Risposta #12 il: 01 Ottobre 2013, 17:33:02 CEST »
0
wow ora leggo il tuo codice ma prima ti rispondo :D
il mio prg e' costituito da un servizio che gira sempre in background (consuma anche poca batteria ! :p), e che crea una chathead quando rileva che sn in foreground (il primo elemento dello stack dei programmi), uno di chat... se la chat e' il prg in foreground, viene resa visibile questa iconcina che si puo' poi utilizzare per condividere immagini sulle chat.
ho implementato nke una sorta di gestione di accesso concorrente (piu' tipi di chat avviate), ma mi rimane il problema di nn riuscire a condividere un img cn una conversazione avviata e memorizzare alcuni 'stati' (scelta delle img preferite)


Post unito: 01 Ottobre 2013, 17:38:38 CEST
ho guardato ora :)
si il createchooser ti serve per condividere e mostrare quella bella tendina da cui puoi scegliere il programma..
il fatto e' che io ho un solo programma "sceglibile" e vale a dire la chat da cui ho avviato la mia app tramite la chathead. In particolare la conversazione che e' in running..
per questo estraggo l'intent tramite setComponent e pescando poi la "classe" in esecuzione.. il problema e' che non riesco a buttarla direttamente sulla conversazione aperta.. e non riesco a capire cosa/come/dove debuggare per stanare il mio errore..

 

Post unito: 01 Ottobre 2013, 17:54:47 CEST
in realta' un warn me lo da:

10-01 17:47:21.692: W/IInputConnectionWrapper(15354): showStatusIcon on inactive InputConnection
10-01 17:47:21.692: W/IInputConnectionWrapper(15354): InputConnection = com.android.internal.widget.EditableInputConnection@405d6cb8, active client = false

quando seleziono un'immagine per poi condividerla ho un rapido passaggio - mia app-mia app dialog-schermata nera-chat app - e intanto la generazione del warn di cui sopra..a quanto ho capito ha a che vedere con una connessione input andata perduta
ma nn capisco di cosa sta parlando  o_O ??? :-(
« Ultima modifica: 01 Ottobre 2013, 17:54:47 CEST da Anna Gabrielli, Reason: Merged DoublePost »

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:Passaggio dati "app sottostante"
« Risposta #13 il: 01 Ottobre 2013, 21:17:23 CEST »
0
Scusa, avevo letto troppo superficialmente i post precedenti.

Tu vuoi interagire con una app terza, giusto ? creando contestualmente un contenuto (l'immagine passata alla app terza, come whatsapp o skype)

Ma sei certa che la app terza accetti intent in quella activity con un'immagine come extra_stream ? Mi spiace, non ho presente se ci sia documentazione in merito.

Per essere certa che la cosa funzioni dovresti fare una tua app semplice che accetti un parametro di quel tipo.

EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline Anna Gabrielli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Google+
    • http://www.linkedin.com/profile/view?id=103996091&goback=%2Enmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    • annagabrielli80
    • acupofcode
    • Mostra profilo
  • Dispositivo Android:
    HTC Widlfire S
  • Sistema operativo:
    Mac OS 10.6.8, Linux Debian Squeeze
Re:Passaggio dati "app sottostante"
« Risposta #14 il: 01 Ottobre 2013, 21:21:15 CEST »
0
si ne sono certa perche' la stessa identica operazione la faccio sul lungo click e l'immagine viene condivisa con la persona prescelta
(click semplice devo condividerla con la persona cn cui ho la conversazione in corso ma non ci sto riuscendo, click lungo aggiungo immagine a preferiti oppure la invio come allegato)