venerdì 30 aprile 2021

testare codice online C# Vb.Net F#

 



Interessante strumento per condividere frammenti di codice o testarlo online.

Dal seguente sito https://dotnetfiddle.net/ è possibile testare codice  selezionando la versione del Framework, la tipologia di piattaforma e linguaggi di programmazione più rappresentativi quali C#, VB.Net e F# o condividerlo con altre persone.

Uno strumento online interessante.

giovedì 29 aprile 2021

Download gratuito il gioco Idle Champions of the Forgotten Realms

 



Disponibile gratuitamente fino al 6 maggio 2021 la possibilità di scaricare il pacchetto campioni gloriosi.

Il gioco è in lingua inglese e per sistemi operativi Windows.

Per maggiori informazioni e download visitate il seguente sito Idle Champions of the Forgotten Realms (epicgames.com)

mercoledì 28 aprile 2021

Linq utilizzo di Union per rilevare in due array string valori univoci

 Il frammento di codice qui di seguito, illustra una tecnica con il quale prendendo due array di string, visualizza tutti quei elementi rendendo univoci i valori .


 string[] TutteCitta = { "Berlino", "Parigi", "Roma", "Palermo", "Mantova", "Madrid" };

            string[] CittaItaliane = { "Roma", "Mantova", "Palermo" };


            var UnioneCitta = TutteCitta.Union(CittaItaliane); //se sono uguali non li visualizza due volte

            foreach (string citta in UnioneCitta)

                MessageBox.Show(citta);


In questo caso, nonostante sono presenti in tutte e due gli array il valore "Roma" "Mantova" e "Palermo" verrà visualizzato una sola volta.


martedì 27 aprile 2021

Servizio gratuito newsletter mailmunch

 Se cercate un servizio gratuito di newsletter da aggiungere al vostro sito, il sito MailMuch, offre gratuitamente tale funzionalità.

Nel sito è possibile utilizzare il servizio gratuito di newsletter con alcune opzioni, oppure quelli a pagamento con ulteriore funzionalità.

Per maggiori informazioni visitate il seguente sito Mailmunch | Lead Generation and Email Marketing for Businesses

lunedì 26 aprile 2021

Posta crittografata gratuita



Se cercate la possibilità di creare un indirizzo di posta elettronica gratuito con aspetti di crittografia per rendere ancora più sicure l'email, qui https://tutanota.com/it/  un servizio in italiano gratuito.

Per maggiori informazioni ed iscrizioni visitate il sito indicato.

domenica 25 aprile 2021

download gioco SpellForce 3: Versus Edition

 



Disponibile gratuitamente il gioco di combattimento SpellForce 3, in lingua italiana e per sistema operativo Windows.

Per maggiori informazioni e download visitate il seguente sito SpellForce 3: Versus Edition (epicgames.com)

sabato 24 aprile 2021

Download gioco Hand of Fate 2

 




Un gioco di combattimento per tutta la famiglia, quello di Hand Of Fate, disponibile in lingua italiana e per sistemi operativi Windows, che fino al 29 aprile 2021 si potrà scaricare gratuitamente e senza limitazioni.

Per maggiori informazioni e download visitate il seguente sito Hand of Fate 2 (epicgames.com)

venerdì 23 aprile 2021

Download gioco Alien: Isolation

 



Disponibile fino al 29 aprile 2021 la possibilità di scaricare gratuitamente il gioco in lingua italiana Alien Isolation, senza limitazioni di funzionalità e tempo.

Il gioco è per sistemi operativi Windows.

Per maggiori informazioni e download visitate il seguente sito Alien: Isolation (epicgames.com)

giovedì 22 aprile 2021

C# Paginazione DataTable

Se vogliamo effettuare la paginazione di 15 record per volta di un DataTable, dovremmo utilizzare il metodo AsEnumerable con il quale possiamo utilizzare i metodi Skip e Take per rilevare i record di volta in volta che ci si tra i vari record.


DataTable DataTableDati = new DataTable();


var records = DataTableDati .AsEnumerable().Skip(15 * (NumeroPagina - 1)).Take(15)

mercoledì 21 aprile 2021

C# copiare il record row da un datatable ad un altro

 Nel caso che dobbiamo copiare la riga di un dataTable in un altro DataTable, il frammento di codice qui di seguito illustra tale tecnica.


  foreach (DataRow riga in DttDataTable1.Rows)

                {

                    DttDataTable2.Rows.Add(riga.ItemArray);

                }

martedì 20 aprile 2021

Download ebook Razor Components

 



Un libro introduttivo al Framework Razor di circa 100 pagine ed informato pdf o per dispositivi mobile.

Il libro è in lingua inglese e si può scaricare gratuitamente previa registrazione.

Per maggiori informazioni o download visitate il seguente sito https://www.syncfusion.com/succinctly-free-ebooks/razor-components-succinctly 

lunedì 19 aprile 2021

download gioco gratuito The First Tree


 


Fino al 22 aprile 2021 la possibilità di scaricare gratuitamente e senza limitazioni il gioco di avvenuta The First Tree, in lingua italiana e per sistemi operativi Windows.

Per maggiori informazioni e download visitate il seguente sito https://www.epicgames.com/store/it/p/the-first-tree

domenica 18 aprile 2021

Ken Follett's The Pillars of the Earth

 



Disponibili gratuitamente e senza limitazioni il gioco di strategia Ken Follett's The Pillars of the Earth in lingua inglese e per sistemi operativi Windows.

Il gioco si può scaricare gratuitamente fino al 22 aprile 2021 dopo tale data non sarà più possibile scaricarlo gratuitamente.

Per maggiori informazioni e download visitate il seguente sito https://www.epicgames.com/store/it/p/ken-follets-the-pillars-of-the-earth

sabato 17 aprile 2021

Download gratuito gioco The Complete Journey

  



Fino al 22 aprile 2021 è possibile scaricare il gioco in lingua italiana The Complete Journey per un pubblico maggiorenne e per sistemi operativi Windows.

Per maggiori informazioni e download visitate il seguente sito Deponia: The Complete Journey (epicgames.com)

venerdì 16 aprile 2021

Motore di ricerca per rimanere anonimi

 Se cercate un motore di ricerca per effettuare le ricerche in maniera anonima, il seguente sito https://www.startpage.com/ offre la possibilità di rimanere anonimi ed altro sulla privacy.

Per maggiori informazioni ed altro, visitate il sito indicato.


giovedì 15 aprile 2021

C# Utilizzo della nuova classe TaskDialogPage .Net 5.0 - Parte 2

 Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-utilizzo-della-nuova-classe-taskdialogpage-net-50-parte-2_1735.aspx 


Dopo aver visto nella prima parte alcuni aspetti di questa classe e le varie proprietà e metodi utilizzati,  qui https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-utilizzo-della-nuova-classe-o-taskdialog-net-50-parte-1_1732.aspx l’articolo della prima parte. Vedremo in questa seconda ed ultima parte altri utilizzi che possono rendere la creazione di applicazioni più professionali e soprattutto semplificare lo sviluppo.

Riprendiamo il progetto precedente nel quale sono presenti una serie di pulsanti sulla form, con il quale per ogni pulsante faremo vedere i vari utilizzi.



Figura 1 – La form con la serie di pulsanti.


Stesura del codice


Riprendiamo dalla seconda riga di pulsanti, quella in basso, in particolare facciamo doppio click sul pulsante che ha la dicitura “Progress Bar”, in modo che passiamo in visualizzazione codice.

In questo esempio vedremo come applicare alla classe TaskDialogPage, una barra di progressione, tramite la classe “TaskDialogProgressBar” con il quale applicare al messaggio l’animazione.



Qui di seguito il codice delle suddette operazioni


C#

  private void BtnProgressBar_Click(object sender, EventArgs e)

        {

            const string testo = "Chiusura tra {0} secondi...";

            int SecondiRimanenti = 50;

 

            var RiavviaButton = new TaskDialogButton("&Riavvia");

            var cancelButton = TaskDialogButton.Cancel;

 

            var page = new TaskDialogPage()

            {

                Heading = "Intestazione",

                Text = string.Format(testo, (SecondiRimanenti + 9) / 10),

                //Visualizzo l'icona della form, ma posso mettere altre icone.

                Icon = new TaskDialogIcon(this.Icon),

                ProgressBar = new TaskDialogProgressBar()

                {

                    State = TaskDialogProgressBarState.Paused

                },

                Buttons =

                {

                    RiavviaButton,

                    cancelButton

                }

            };

 

 

            using (var timer = new Timer()

            {

                Enabled = true,

                Interval = 100

            })

            {

                timer.Tick += (s, e) =>

                {

                    SecondiRimanenti--;

                    if (SecondiRimanenti > 0)

                    {

                        //Aggiorno la barra

                        page.Text = string.Format(testo, (SecondiRimanenti + 9) / 10);

                        page.ProgressBar.Value = 100 - SecondiRimanenti * 2;

                    }

                    else

                    {

                        //Invoco il click del pulsante riavvia al termine del caricamento della progress bar

                        timer.Enabled = false;

                        RiavviaButton.PerformClick();

                    }

                };

 

                TaskDialogButton result = TaskDialog.ShowDialog(this, page);

                if (result == RiavviaButton)

                    MessageBox.Show("Riavviato.");

                else

                    MessageBox.Show("Annullato.");

            }

        }


Come si è visto dal codice precedente, si fa uso anche della classe timer per aggiornare ogni tot secondi l’avanzamento della barra.

Il risultato sarà simile come quello mostrato in figura 2.


Figura 2 – il risultato del messaggio


Ritorniamo in visualizzazione grafica, e facciamo doppio click sul pulsante che riporta la dicitura “Multipla Pagina” in questo modo passiamo in visualizzazione codice nell’evento click del pulsante.

In questo pulsante verranno utilizzate varie classi per permettere una navigazione su più pagine. In particolare, si interagisce con l’utente in maniera che prosegue per tre passaggi (step) dove nella prima pagina, può continuare solo nel momento in cui farà click sul controllo di tipo “Checkbox, dopo il click sul controllo “checkBox” verrà abilitato un pulsante che permetterà di proseguire (figura 3).


Figura 3 – Il primo messaggio con il quale la check abilitato il pulsante “Si per continuare”.


Nella finestra successiva una pagina con barra di progressione con il quale ci sarà un pulsante disabilitato (figura 4).


Figura 4 - La seconda pagina con la barra di progressione


Al completamento della “Progress Bar”, verrà aperta una finestra con il pulsante di navigazione (figura 5).


Figura 5 – La terza ed ultima pagina con il pulsante di tipo collegamento



Qui di seguito il codice delle suddette operazioni.


C#

 

private void BtnMultiPage_Click(object sender, EventArgs e)

        {

            // Imposto il pulsante si come disabilitato

            var ButtonYes = TaskDialogButton.Yes;

            ButtonYes.Enabled = false;

            ButtonYes.AllowCloseDialog = false;

 

            var initialPage = new TaskDialogPage()

            {

                Caption = "Titolo applicazione",

                Heading = "Intestazione - Come vuoi procedere?",

                Text = "Sei sicuro di procedere?\n\n\n Testo a capo!",

                Icon = TaskDialogIcon.ShieldWarningYellowBar, //Stile della pagina,

                AllowCancel = true,

                //Possibilità di minimazziare

                AllowMinimize = true,

 

                Verification = new TaskDialogVerificationCheckBox()

                {

                    Text = "Scelta di default"

                },

 

                Buttons =

                {

                    TaskDialogButton.No,

                    ButtonYes

                },

                DefaultButton = TaskDialogButton.No

            };

 

            // Creo un pulsante disabilitato nella pagina, perchè altrimenti mette uno di default che chiude la finestra.

            var PulsanteDisabilitato = TaskDialogButton.Close;

            PulsanteDisabilitato.Enabled = false;

 

            var ProgressPage = new TaskDialogPage()

            {

                Caption = "Titolo applicazione",

                Heading = "Operazione incorso........",

                Text = "Testo - operazione in corso.",

                Icon = TaskDialogIcon.Information,

                AllowMinimize = true,

 

                ProgressBar = new TaskDialogProgressBar()

                {

                    State = TaskDialogProgressBarState.Marquee

                },

 

                Expander = new TaskDialogExpander()

                {

                    Text = "Avvio......",

                    Position = TaskDialogExpanderPosition.AfterFootnote

                },

 

                Buttons =

                {

                    PulsanteDisabilitato

                }

            };

 

            // Viene aggiunto un pulsante per intercettare la chiusura della pagina.

            var PulsanteDisabilitatoPerEvitareChiusura = TaskDialogButton.Cancel;

            PulsanteDisabilitatoPerEvitareChiusura.Visible = false;

            PulsanteDisabilitatoPerEvitareChiusura.AllowCloseDialog = false;

            ProgressPage.Buttons.Add(PulsanteDisabilitatoPerEvitareChiusura);

 

            var UltimaPage = new TaskDialogPage()

            {

                Caption = "Titolo Pagina Ultima Pagina",

                Heading = "Testo",

                Text = "Tutte le azioni sono terminate.",

                Icon = TaskDialogIcon.ShieldSuccessGreenBar,

                AllowMinimize = true,

                Buttons =

                {

                    TaskDialogButton.Close

                }

            };

 

            TaskDialogButton VisualizzaButton = new TaskDialogCommandLinkButton("&Visualizza");

            UltimaPage.Buttons.Add(VisualizzaButton);

 

            //Abilito il pulsante di "Si" solo dopo aver selezionato il checkbox

            TaskDialogVerificationCheckBox checkBox = initialPage.Verification;

            checkBox.CheckedChanged += (sender, e) =>

            {

                ButtonYes.Enabled = checkBox.Checked;

            };

 

            //Navigo nella seconda pagina, al click del pulsante SI

            ButtonYes.Click += (sender, e) =>

            {

                //Pagina relativa alla barra di avanzamento

                initialPage.Navigate(ProgressPage);

 

            };

 

            // Simulo le operazioni che andranno fatte nella progress bar

            ProgressPage.Created += async (s, e) =>

            {

                // Eseguo il caricamento della progressBar.

                var progressBar = ProgressPage.ProgressBar;

 

                await foreach (int ValoreProgressivo in SimulazioneCaricamentoProgressivoBarraAsync())

                {

                    // Al primo avvio cambio lo stato

                    if (progressBar.State == TaskDialogProgressBarState.Marquee)

                        progressBar.State = TaskDialogProgressBarState.Normal;

 

                    progressBar.Value = ValoreProgressivo;

                    ProgressPage.Expander.Text = $"Avanzamento: {ValoreProgressivo} %";

                }

 

                //Al termine del caricamento della barra passo alla pagina successiva, al completamento 100%

                ProgressPage.Navigate(UltimaPage);

            };

 

            //Visualizzo l'ultima pagina e verifico il pulsante selezionato

            TaskDialogButton result = TaskDialog.ShowDialog(initialPage);

            if (result == VisualizzaButton)

            {

                MessageBox.Show("Pulsante Visualizza");

            }

 

 

            static async IAsyncEnumerable<int> SimulazioneCaricamentoProgressivoBarraAsync()

            {

                //Attesa

                await Task.Delay(2800);

 

                for (int Conta = 0; Conta <= 100; Conta += 4)

                {

                   

                    yield return Conta;

 

                  

                    await Task.Delay(200);

                }

            }

        }


Passiamo in visualizzazione grafica per continuare a scrivere altri aspetti di utilizzo della classe per la gestione di messaggi a video in ambito avanzato.

Facciamo click sul pulsante con la dicitura “Esecuzione Amministratore” in maniera che passiamo in visualizzazione codice, ed in particolar modo nell’evento click del pulsante.

In questo pulsante viene visualizzato un messaggio a video con il quale tramite il pulsante di tipo “Navigazione” viene eseguito il prompt dei comandi di Windows in modalità “amministratore”.

Con la classe ProcessStartInfo viene eseguito il programma di prompt in modalità amministratore, il tutto invocando dal click del pulsante di tipo “TaskDialogCommandLinkButton”.


Qui di seguito il codice delle suddette operazioni.


C#

private void BtnAmministratore_Click(object sender, EventArgs e)

        {

            var pageAmministratore = new TaskDialogPage()

            {

                Heading = "Titolo - Esecuzione modalità amministratore",

                Text = "Eseguire il programma in modalità amministratore",

                Icon = TaskDialogIcon.ShieldSuccessGreenBar,

                Buttons =

                {

                    TaskDialogButton.Close

                }

            };

 

            var EseguiButton = new TaskDialogCommandLinkButton("&Esegui");

            pageAmministratore.Buttons.Add(EseguiButton);

 

            EseguiButton.ShowShieldIcon = true;

            EseguiButton.Click += (s, e) =>

            {

                EseguiButton.AllowCloseDialog = true;

                EseguiButton.Enabled = false;

 

                //Esegue in modalità amministratore il prompt dei comandi

                var processPrompt = new ProcessStartInfo("cmd.exe", "/k echo testo, testo inserito nel prompt.")

                {

                    UseShellExecute = true,

                    Verb = "runas"

                };

 

                try

                {

                    Process.Start(processPrompt)?.Dispose();

                }

                catch (Win32Exception ex) when (ex.NativeErrorCode == 1223)

                {

                    //Gestione dell'errore

                    EseguiButton.AllowCloseDialog = false;

                    EseguiButton.Enabled = true;

                    return;

                }

            };

 

            TaskDialog.ShowDialog(this, pageAmministratore);

        }


Ora non resta che eseguire il pulsante ed il risultato sarà come la figura 6.



Figura 6 – La pagina che apre in modalità amministratore il prompt



Siamo giunti quasi a conclusione dell’articolo, non ci resta che scrivere il codice per la gestione degli eventi che la classe TaskDialogPage offre con i suoi vari controlli.

Ritorniamo in modalità grafica, e facciamo click sull’ultimo pulsante, quello con la dicitura “Eventi” in modo che passiamo in visualizzazione codice nell’evento click del pulsante.

Questo ultimo frammento di codice fornisce vari esempi di codice dell’utilizzo degli eventi che si possono verificare nell’utilizzo della classe “TaskDialogPage” con i vari controlli che si possono inserire ed in quelli della classe (creazione, chiusura, etc).


Qui di seguito il frammento di codice delle suddette operazioni


C#

private void BtnEventi_Click(object sender, EventArgs e)

        {

            var pagePrincipale = new TaskDialogPage()

            {

                Caption = Text,

                Heading = "Eventi",

                Text = "Dimostrazioni eventi",

            };

 

            pagePrincipale.Created += (s, e) => MessageBox.Show("Creazione Pagina principale");

            pagePrincipale.Destroyed += (s, e) => MessageBox.Show("Chiusura dopo ok della pagina principale");

            pagePrincipale.HelpRequest += (s, e) => MessageBox.Show("Click pulsante Help della Pagina principale ");

 

            pagePrincipale.Expander = new TaskDialogExpander("Parte che si espande")

            {

                Position = TaskDialogExpanderPosition.AfterFootnote

            };

 

            pagePrincipale.Expander.ExpandedChanged += (s, e) => MessageBox.Show("Evento ExpandedChanged: " + pagePrincipale.Expander.Expanded);

 

            var buttonOK = TaskDialogButton.OK;

            var buttonHelp = TaskDialogButton.Help;

            var buttonChiudi = new TaskDialogCommandLinkButton("&Chiusura", allowCloseDialog: false);

            var buttonShowInnerDialog = new TaskDialogCommandLinkButton("&Apri Task Dialog", "(con successiva chiusura)");

            var buttonNavigaPaginaSecondaria = new TaskDialogCommandLinkButton("&Naviga Pagina Secondaria", allowCloseDialog: false);

 

            pagePrincipale.Buttons.Add(buttonOK);

            pagePrincipale.Buttons.Add(buttonHelp);

            pagePrincipale.Buttons.Add(buttonChiudi);

            pagePrincipale.Buttons.Add(buttonShowInnerDialog);

            pagePrincipale.Buttons.Add(buttonNavigaPaginaSecondaria);

 

            buttonOK.Click += (s, e) => MessageBox.Show($"Pulsante '{s}' Click");

            buttonHelp.Click += (s, e) => MessageBox.Show($"Pulsante '{s}' Click");

 

            buttonChiudi.Click += (s, e) =>

            {

                MessageBox.Show($"Pulsante '{s}' Click");

            };

 

            buttonShowInnerDialog.Click += (s, e) =>

            {

                MessageBox.Show($"Pulsante '{s}' Click");

                TaskDialog.ShowDialog(new TaskDialogPage()

                {

                    Text = "Testo Task Dialog"

                });

                MessageBox.Show($"Pulsante dopo ShowDialog '{s}' Click");

            };

 

            buttonNavigaPaginaSecondaria.Click += (s, e) =>

            {

                MessageBox.Show($"Evento click pulsante '{s}' ");

 

                //Apro una nuova pagina

                var pageSecondaria = new TaskDialogPage()

                {

                    Heading = "Pagina secondaria.",

                    Buttons =

                    {

                        TaskDialogButton.Close

                    }

                };

                pageSecondaria.Created += (s, e) => MessageBox.Show("Evento pagina secondaria creazione ");

                pageSecondaria.Destroyed += (s, e) => MessageBox.Show("Evento pagina secondaria  di chiusura");

 

                pagePrincipale.Navigate(pageSecondaria);

            };

 

            pagePrincipale.Verification = new TaskDialogVerificationCheckBox("&Controllo checkbox messo in basso");

            pagePrincipale.Verification.CheckedChanged += (s, e) => MessageBox.Show("Evento CheckedChanged del check di verifica: " + pagePrincipale.Verification.Checked);

 

            var radioButton1 = pagePrincipale.RadioButtons.Add("Radi&oButton 1");

            var radioButton2 = pagePrincipale.RadioButtons.Add("RadioB&utton 2");

 

            radioButton1.CheckedChanged += (s, e) => MessageBox.Show("Evento CheckedChanged del RadioButton1: " + radioButton1.Checked);

            radioButton2.CheckedChanged += (s, e) => MessageBox.Show("Evento CheckedChanged dek RadioButton2: " + radioButton2.Checked);

 

            var dialogResult = TaskDialog.ShowDialog(pagePrincipale);

            MessageBox.Show("Visualizza risultato Task Dialog della pagina principale: " + dialogResult);

        }


Il risultato sarà il tutto come illustrato in figura 7



Figura 7 – Esempio di eventi per i vari controlli


Conclusioni

L’articolo ha fornito una panoramica completo dell’utilizzo della nuova classe per la visualizzazione dei messaggi a video, standard di quelli di Windows, fornendo al lettore i vari utilizzi e le potenzialità offerte di questa classe.

Con il Framework 5.0 le potenzialità offerte sono tante, e tra queste anche nuove classi, come in questo caso per la classe “TaskDialogPage”.


L’utilizzo di questa classe, come anche l’articolo è per applicazioni di tipo “Windows Application” e con Visual Studio 2019 e Framework 5.0.

mercoledì 14 aprile 2021

Componente gratuito per fare i grafici billboard.js

 


Nello sviluppo di applicazioni web, può tornare utile la creazione dei grafici per la presentazione dei dati, il framework billboard.js può tornare utile in tale circostanza.

Per maggiori informazioni ed altro visitate il seguente sito https://naver.github.io/billboard.js/

martedì 13 aprile 2021

Il blog tecnico di Gianmarco Castagna

 Oggi segnalo un blog tecnico di Gianmarco Castagna, con il quale sono presenti interessanti post sul linguaggio di programmazione C#.

I post sono scritti in lingua italiana, qui https://gianmarcocastagna.blogspot.com/ il blog.

lunedì 12 aprile 2021

Anteprima Framework .Net 6

Come annunciato dal seguente sito https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-3/ rilasciati in questi giorni la versione anteprima del .Net 6 ed Asp.Net Core .Net 6 qui le novità  https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-3/  di Asp.Net 6

Download gioco The Cycle

 



Disponibile gratuitamente per sistema operativo Windows, il gioco The Cycle, un videogames di avvenuta.

Il gioco non è in lingua inglese, ma facilmente giocabile.

Per maggiori informazioni e download visitate il seguente sito https://www.epicgames.com/store/it/p/thecycle

domenica 11 aprile 2021

Beyond Public Speaking for Geeks


 



Disponibile gratuitamente ed in lingua inglese, un ebook di circa 80 pagine con il quale spiega le tecniche per parlare in pubblico o tramite webcast per un pubblico tecnico.

Per scaricare l'ebook in lingua inglese e formato pdf o dispositivi mobile, visitate il seguente sito Free Ebook - Beyond Public Speaking for Geeks Succinctly (syncfusion.com) 

sabato 10 aprile 2021

Esportare i contatti in Android su altro smartphone Android

 In questo tutorial vedremo come esportare i contatti di rubrica salvati sulla memoria del cellulare Android e copiarli in un altro cellulare.

Andiamo nel nostro SmartPhone nella sezione dove sono presenti tutte le app, di norma fare click sul pulsante in basso centrale, ci troveremo tutte le app che abbiamo nello smartphone


Figura 1 - Tutte le app


In alto c'è l'icona della lente di ingrandimento, digitiamo il testo "Contatt" e tra le app viene visualizzata quella denominata "Persone". Questa app, di default per ogni smartphone, permette di gestire i contatti, ossia numeri di telefono delle presone.


Figura 2 - L' app per la gestione dei contatti


A questo punto facciamo click sull'applicazione "Persone" in modo che si apre l'applicazione con tutti i numero di telefono, il tutto come mostrato in figura 3.


Figura 3 - la lista dei contatti nell app "Persone"



Sopra ad ogni contatto lato destro, si trovano tre quadrati in verticale, facciamo click su quell'icona, il quale verrà mostrato un menu di voci, come riportato in figura 4.


Figura 3  - Il menu



Facciamo click sulla voce "Gestisci Cont." in modo che apre una nuova finestra che permette l'importazione o esportazione dei contatti.


Figura 4 - La finestra con funzioni sui contatti


Facciamo click sulla voce "Importa/Esperta" della figura 4, in modo che apre una finestra per chiedere quale funzionalità avviare, il tutto come mostrato in figura 5.

Figura 5 - le scelte proposteò




Facciamo click sulla voce "Esporta in archivio" in modo che alla successiva finestra ci chiede in quale maniera esportare i contatti (figura 6) .


Figura 6 - la finestra con il quale scegliere la modalità di esportazione


Selezioniamo la voce "Google", in questo modo impostando sull'altro dispositivo l'account Google, possiamo scaricare e sincronizzare i contatti.

A questo punto verrà eseguita la fase di esportazione.