Autore Topic: Rimuovere finestra con la richiesta dell'applicazione da utilizzare  (Letto 1317 volte)

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Nella mia applicazione ho fatto una nuova activity per gestire delle chiamate.
Nel manifest ho aggiunto un intent-filter con l'action da eseguire.
Ho aggiunto anche:
Codice (XML): [Seleziona]
<category android:name="android.intent.category.DEFAULT" />
Quando la chiamata deve partire si apre una finestra che richiede quale applicazione usare e se usarla come default.
Nell'elenco sono presenti la mia applicazione e altre installate nel telefono.
Vorrei evitare questo comportamento e vorrei forzare l'utilizzo della mia applicazione senza alcuna richiesta aggiuntiva.
E' possibile? Come si potrebbe fare?




Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #1 il: 15 Maggio 2012, 11:19:45 CEST »
0
E' possibile? Come si potrebbe fare?

Purtroppo non è possibile. Deve essere l'utente a scegliere cosa utilizzare.

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #2 il: 15 Maggio 2012, 11:28:24 CEST »
0
Lo immaginavo, ma questa cosa però non la capisco.   :-(
L'utente sceglie di far partire un'applicazione.
All'interno dell'applicazione, tra le altre cose, viene fatta partire una chiamata.
A questo punto viene chiesto nuovamente quale applicazione utilizzare.
Praticamente sta già utilizzando l'applicazione che deve usare per fare la chiamata. Perché richiederlo nuovamente?
Quale è il motivo di questa scelta? 



Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #3 il: 15 Maggio 2012, 11:36:51 CEST »
+1
Probabilmente perchè dall'interno della tua app - quando fai partire la chiamata - lanci un Intent non esplicito, lasciando al sistema la responsabilità di trovare l'app che possa risolverlo. E il sistema Android funge così, mostra una lista di scelte all'utente.
Prova ad usare un Intent esplicito.

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #4 il: 15 Maggio 2012, 12:25:21 CEST »
0
Con l'intent esplicito ho risolto. Grazie  :-)

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #5 il: 22 Maggio 2012, 10:05:30 CEST »
0
Riapro il topic perché per motivi che non sto qui a descrivere devo utilizzare l'intent generico.

L'utente la prima volta che lo utilizza sceglie l'applicazione e imposta "usa come predefinita".
Le volte successive la finestra non compare più.

Il problema ricompare se faccio un update dell'applicazione. Esiste un modo per evitare la richiesta quando viene fatto un aggiornamento dell'applicazione (o a livello di codice o anche a livello di impostazioni del telefono)?
L'utente lo sceglie la prima vltae poi basta, anche se ci dovessero essere aggiornamenti dell'applicazione scelta come default.
E' possibile?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #6 il: 22 Maggio 2012, 10:37:47 CEST »
0
In teoria, se ben ricordo, quando aggiorni l'app dovrebbe conservare questa preferenza. Sei sicuro che magari non l'hai disinstallata e reinstallata?

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #7 il: 22 Maggio 2012, 10:59:12 CEST »
0
In effetti quello che faccio per fare l'aggiornamento è questo:

Codice (Java): [Seleziona]
public static void Install(Activity activity) throws InstallationException
    {          
        try
        {      
           // (..) qua scarica il file apk aggiornato
          // lo salva nella sdk
            FileOutputStream f = new FileOutputStream(new File( Environment.getExternalStorageDirectory() + "/" + targetFileName));
           
            InputStream in = c.getInputStream();
            byte[] buffer = new byte[1024];
            int len1 = 0;

// (.. gestione eccezione close/etch)
            while ( (len1 = in.read(buffer)) > 0 )
            {  
                f.write(buffer,0, len1);
            }
            f.close();


         // installa il file
            install(Environment.getExternalStorageDirectory() + "/" + targetFileName, activity);
         
        }
        catch (Exception e)
        {      
// ...
            throw new InstallationException(e);
        }
    }
   
    protected static void install(String fileName, Activity activity)
    {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(fileName)),"application/vnd.android.package-archive");
        activity.startActivity(intent);
    }

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #8 il: 22 Maggio 2012, 18:27:49 CEST »
0
In teoria, se ben ricordo, quando aggiorni l'app dovrebbe conservare questa preferenza. Sei sicuro che magari non l'hai disinstallata e reinstallata?
In realtá no. Il comportamento di default é di eliminare quella preferenza.
Io ho sempre pensato che dipendesse dal fatto che l'app puó subire cambiamenti con l'aggiornamento e quindi si preferisce chiedere all'utente di nuovo l'app da usare come predefinita.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #9 il: 22 Maggio 2012, 19:45:02 CEST »
0
In realtá no. Il comportamento di default é di eliminare quella preferenza.
Io ho sempre pensato che dipendesse dal fatto che l'app puó subire cambiamenti con l'aggiornamento e quindi si preferisce chiedere all'utente di nuovo l'app da usare come predefinita.

Ok, allora mi ricordavo male. Nevermind ;)

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Re:Rimuovere finestra con la richiesta dell'applicazione da utilizzare
« Risposta #10 il: 23 Maggio 2012, 10:30:41 CEST »
0
In realtá no. Il comportamento di default é di eliminare quella preferenza.
Io ho sempre pensato che dipendesse dal fatto che l'app puó subire cambiamenti con l'aggiornamento e quindi si preferisce chiedere all'utente di nuovo l'app da usare come predefinita.

Hai idea se sia possibile cambiare il comportamento di default?