Italian App in Background

Discussion in 'Italian Forum' started by fifiddu70, May 21, 2019.

  1. fifiddu70

    fifiddu70 Well-Known Member Licensed User

    Ciao a tutti, all'interno di un sito web ho creato una cartella con all'interno un file htm ed uno php che alla ricezione di un numero questi crea un file di testo txt con il numero all'interno, a questo punto ho creato una app che riceve questi numeri suddivisi in 4 lettere, ad esempio numeri con la lettera A ( A10 etc.. ) numeri con lettera B, C, D,
    questi numeri vengono poi visti all'interno di 4 caselle di testo rispettivamente una per lettera, la mia necessità è di realizzare una funzione che sia capace di far lavorare l'app in background tipo in service, poi vorrei fare il confronto tra uno dei 4 numeri con un numero da me inserito in una casella di testo per il confronto, se il numero corrisponde ad una dei 4 numeri ricevuti attraverso il modulo http allora questo da background dovrebbe svegliarsi e suonare il telefono avvisandoci del numero ricevuto corrispomndente a quello da noi memorizzato prima, l'unica mia difficoltà sta nel far funzionare in background l'app, il resto dovrei riuscire a farlo funzionare, ho provato con il codice qui sotto ma ovviamente si sente la radio in background e questo non va benee poi appena dovrebbe suonare questi non suona, sapete darmi un aiuto su come far funzionare bene l'app anche in bacgkround?
    Qui sotto il codice sperimentale da me usato.

    Code:
    'Code module
    #Region  Project Attributes
        
    #ApplicationLabel: Numerazione
        
    #Version: 1.0.0
        
    'Orientation possible values: Portrait, LandscapeLeft, LandscapeRight and PortraitUpsideDown
        #iPhoneOrientations: Portrait
        
    #iPadOrientations: Portrait
        
    #Target: iPhone, iPad
        
    #ATSEnabled: False
        
    #MinVersion: 8
        
        
    #End Region
    #PlistExtra: <key>UIBackgroundModes</key><array><string>audio</string></array>

    Sub Process_Globals
        
    'These global variables will be declared once when the application starts.
        'Public variables can be accessed from all modules.
        
        
    Public App As Application
        
    Public NavControl As NavigationController
        
    Private Page1 As Page
        
    Private hc As HttpClient
        
    Dim timer1 As Timer
        
    Dim timer2 As Timer
        
    Dim timer3 As Timer
        
    Dim timer4 As Timer
        
        
        
    Private lblmessagerx As Label
        
    Private txtmessagerx As TextField
        
    Private lblmessagerx2 As Label
        
    Private txtmessagerx2 As TextField
        
    Private txtmessagerx3 As TextField
        
    Private txtmessagerx4 As TextField
        
    Private lblmessagerx3 As Label
        
    Private lblmessagerx4 As Label
        
    Private pnlchiamata As Panel
        
    Private pnlselect As Panel
        
    Private txta As TextField
        
    Private txtb As TextField
        
    Private txtc As TextField
        
    Private txtd As TextField
        
    Private lblselectinfo As Label
        
    Private NativeMe As NativeObject
        
    Private vv As VideoView
        
    Private vv2 As VideoView
        
    Private btnstop As Button
        
    Private btnreturn As Button
        
    Private btnvainumeri As Button
        
    Private btnbackchiamata As Button
        
    Private locManager As LocationManager
        
    Private lblcount As Label
        
    Private lblcarico As Label
    End Sub

    Private Sub Application_Start (Nav As NavigationController)
        
    'SetDebugAutoFlushLogs(True) 'Uncomment if program crashes before all logs are printed.
        NativeMe = Me
        NavControl = Nav
        Page1.Initialize(
    "Page1")
        Page1.Title = 
    "Turn And go View"
        Page1.RootPanel.Color = 
    Colors.White
        Page1.RootPanel.LoadLayout(
    "turnandgoview")
        NavControl.ShowPage(Page1)
        locManager.Initialize(
    "locManager")
        
        
        
    Dim job As HttpJob
        job.Initialize(
    "j", Me)
        
        hc.Initialize(
    "hc")
        timer1.Initialize(
    "timer1",8000)
        timer2.Initialize(
    "timer2",8000)
        timer3.Initialize(
    "timer3",8000)
        timer4.Initialize(
    "timer4",8000)
        
        timer1.Enabled=
    True
        timer2.Enabled=
    True
        timer3.Enabled=
    True
        timer4.Enabled=
    True
        
        pnlselect.Initialize(
    "pnlselect")
        pnlselect.Color=
    Colors.Cyan
        
        pnlchiamata.Initialize(
    "pnlchiamata")
        pnlchiamata.Color=
    Colors.Cyan
        
        lblselectinfo.Initialize(
    "lblselectinfo")
        lblselectinfo.Text=
    "Inesrisci ad esempio due numeri prima del tuo prelevato nella lettera corrispondente e premi il tasto home per attendere di essere chiamato prima del tuo turno."
        lblselectinfo.TextAlignment = lblselectinfo.Top
        lblselectinfo.TextAlignment = lblselectinfo.ALIGNMENT_CENTER
        lblselectinfo.Multiline = 
    True
        lblselectinfo.Font = 
    Font.CreateNew(14)
        
        txta.Initialize(
    "txta")
        txta.KeyboardType = txta.TYPE_NUMBER_PAD
        txta.Font=
    Font.CreateNew(35)
        txta.Text=
    "A"
        
        txtb.Initialize(
    "txta")
        txtb.KeyboardType = txtb.TYPE_NUMBER_PAD
        txtb.Font=
    Font.CreateNew(35)
        txtb.Text=
    "B"
        
        txtc.Initialize(
    "txtc")
        txtc.KeyboardType = txtc.TYPE_NUMBER_PAD
        txtc.Font=
    Font.CreateNew(35)
        txtc.Text=
    "C"
        
        txtd.Initialize(
    "txtd")
        txtd.KeyboardType = txtd.TYPE_NUMBER_PAD
        txtd.Font=
    Font.CreateNew(35)
        txtd.Text=
    "D"
        
        btnstop.Initialize(
    "btnstop", btnstop.STYLE_SYSTEM)
        btnstop.Text = 
    "STOP"
        btnstop.SetBorder(
    2,Colors.Black,8)
        btnstop.SetShadow(
    Colors.Black,3,3,1,True)
        btnstop.Color= 
    Colors.LightGray
        
        btnreturn.Initialize(
    "btnreturn", btnreturn.STYLE_SYSTEM)
        btnreturn.Text = 
    "RESET"
        btnreturn.SetBorder(
    2,Colors.Black,8)
        btnreturn.SetShadow(
    Colors.Black,3,3,1,True)
        btnreturn.Color= 
    Colors.LightGray
        btnreturn.Color= 
    Colors.LightGray
        
        btnvainumeri.Initialize(
    "btnvainumeri", btnvainumeri.STYLE_SYSTEM)
        btnvainumeri.Text = 
    "VEDI NUMERO CHIAMATO IN CORSO"
        btnvainumeri.SetBorder(
    2,Colors.Black,8)
        btnvainumeri.SetShadow(
    Colors.Black,3,3,1,True)
        btnvainumeri.Color= 
    Colors.LightGray
        
        btnbackchiamata.Initialize(
    "btnbackchiamata", btnbackchiamata.STYLE_SYSTEM)
        btnbackchiamata.Text = 
    "INDIETRO"
        btnbackchiamata.SetBorder(
    2,Colors.Black,8)
        btnbackchiamata.SetShadow(
    Colors.Black,3,3,1,True)
        btnbackchiamata.Color= 
    Colors.LightGray
        btnbackchiamata.Color= 
    Colors.LightGray
        
        lblcarico.Initialize(
    "lblcarico")
        lblcarico.Text=
    "Attendere caricamento in corso..."
        lblcarico.Font = 
    Font.CreateNew(20)
        lblcarico.TextAlignment = lblcarico.ALIGNMENT_CENTER
        
        lblmessagerx.Initialize(
    "lblmessagerx")
        lblmessagerx.Font = 
    Font.CreateNew(50)
        lblmessagerx.TextAlignment = lblmessagerx.Top
        lblmessagerx.TextAlignment = lblmessagerx.ALIGNMENT_LEFT
        
        lblmessagerx2.Initialize(
    "lblmessagerx2")
        lblmessagerx2.Font = 
    Font.CreateNew(50)
        lblmessagerx2.TextAlignment = lblmessagerx2.Top
        lblmessagerx2.TextAlignment = lblmessagerx2.ALIGNMENT_LEFT
        
        lblmessagerx3.Initialize(
    "lblmessagerx3")
        lblmessagerx3.Font = 
    Font.CreateNew(50)
        lblmessagerx3.TextAlignment = lblmessagerx3.Top
        lblmessagerx3.TextAlignment = lblmessagerx3.ALIGNMENT_LEFT
        
        lblmessagerx4.Initialize(
    "lblmessagerx4")
        lblmessagerx4.Font = 
    Font.CreateNew(50)
        lblmessagerx4.TextAlignment = lblmessagerx4.Top
        lblmessagerx4.TextAlignment = lblmessagerx4.ALIGNMENT_LEFT
        
        Page1.RootPanel.AddView(pnlselect,
    0%x,0%y,100%x,100%y)
        Page1.RootPanel.AddView(lblselectinfo, 
    1%x0%y98%x19%y)
        Page1.RootPanel.AddView(txta, 
    1%x16%y40%x9%y)
        Page1.RootPanel.AddView(txtb, 
    58%x16%y40%x9%y)
        Page1.RootPanel.AddView(txtc, 
    1%x27%y40%x9%y)
        Page1.RootPanel.AddView(txtd, 
    58%x27%y40%x9%y)
        Page1.RootPanel.AddView(btnstop, 
    22%x39%y25%x10%y)
        Page1.RootPanel.AddView(btnreturn, 
    1%x39%y20%x10%y)
        Page1.RootPanel.AddView(btnvainumeri, 
    50%x39%y48%x10%y)
        
        Page1.RootPanel.AddView(pnlchiamata,
    0%x,0%y,100%x,100%y)
        Page1.RootPanel.AddView(lblcarico, 
    1%x1%y98%x10%y)
        Page1.RootPanel.AddView(lblmessagerx, 
    1%x11%y40%x10%y)
        Page1.RootPanel.AddView(lblmessagerx2, 
    58%x11%y40%x10%y)
        Page1.RootPanel.AddView(lblmessagerx3, 
    1%x22%y40%x10%y)
        Page1.RootPanel.AddView(lblmessagerx4, 
    58%x22%y40%x10%y)
        Page1.RootPanel.AddView(btnbackchiamata, 
    1%x35%y98%x10%y)
        
        
        pnlchiamata.Visible=
    False
        lblmessagerx.Visible=
    False
        lblmessagerx2.Visible=
    False
        lblmessagerx3.Visible=
    False
        lblmessagerx4.Visible=
    False
        btnbackchiamata.Visible=
    False
        lblcarico.Visible=
    False
        
        
    End Sub

    private Sub Application_Foreground
        
    End Sub
    Private Sub Page1_Resize(Width As Int, Height As Int)
        
    End Sub

    Private Sub Application_Background
        
        
    Log("Suca")
        
    End Sub

    Sub timer1_Tick
        
    Log("sono sulla sub timer1 di main")
        
    Dim job As HttpJob
        job.Initialize(
    "Job", Me)
        job.Download(
    "http://www.xxxxx.xxxx/xxxxx/xxxxx/NumeroA.txt")
        
        
    End Sub

    Sub timer2_Tick
        
    Log("sono sulla sub timer2 di main")
        
    Dim job As HttpJob
        job.Initialize(
    "Job", Me)
        job.Download(
    "http://www.xxxxx.xxxx/xxxxx/xxxxx/NumeroB.txt")
        
        
    End Sub

    Sub timer3_Tick
        
    Log("sono sulla sub timer3 di main")
        
    Dim job As HttpJob
        job.Initialize(
    "Job", Me)
        job.Download(
    "http://www.xxxxx.xxxx/xxxxx/xxxxx/NumeroC.txt")
        
        
    End Sub

    Sub timer4_Tick
        
    Log("sono sulla sub timer4 di main")
        
    Dim job As HttpJob
        job.Initialize(
    "Job", Me)
        job.Download(
    "http://www.xxxxx.xxxx/xxxxx/xxxxx/NumeroD.txt")
        
        
    End Sub

    Sub JobDone (job As HttpJob)
        
        
    Log("JobName = " & job.JobName & ", Success = " & job.Success)
        
    If job.Success = True Then
            
    Select job.JobName
                
    Case "Job" , "job2"
                    
    'print the result to the logs
                    txtmessagerx.Text=job.GetString
                    
    Log(job.GetString)
                    
    If txtmessagerx.Text.StartsWith("A"Then
                        lblmessagerx.Text=txtmessagerx.Text
                        
    If job.GetString = txta.Text Then
                            
    CallSub(Me,"suona2")
                            
    CallSub(Me,"suona")
                        
    End If
                    
    else if txtmessagerx.Text.StartsWith("B"Then
                        lblmessagerx2.Text=txtmessagerx.Text
                        
    If job.GetString = txtb.Text Then
                            
    CallSub(Me,"suona2")
                            
    CallSub(Me,"suona")
                        
    End If
                    
    else if txtmessagerx.Text.StartsWith("C"Then
                        lblmessagerx3.Text=txtmessagerx.Text
                        
    If job.GetString = txtc.Text Then
                            
    CallSub(Me,"suona2")
                            
    CallSub(Me,"suona")
                        
    End If
                    
    else if txtmessagerx.Text.StartsWith("D"Then
                        lblmessagerx4.Text=txtmessagerx.Text
                        
    If job.GetString = txtd.Text Then
                            
    CallSub(Me,"suona2")
                            
    CallSub(Me,"suona")
                        
    End If
                    
    End If
            
                
    Case "Job3"
                    
    'show the downloaded image
                'Activity.SetBackgroundImage(job.GetBitmap)
            End Select
        
    Else
            
    Log("Error: " & job.ErrorMessage)
            
    'ToastMessageShow("Error: " & job.ErrorMessage, True)
        End If
        job.Release
        
    End Sub
    Sub suona
        
        NativeMe.RunMethod(
    "setAudioSession"Null)
        vv.Initialize(
    "vv")
        
    'vv.LoadVideo(File.DirAssets,"turno.mp3")
        vv.LoadVideoUrl("http://stream-dc1.radioparadise.com/mp3-32")
        vv.Play
        NativeMe.RunMethod(
    "register"Null)
        NavControl.ShowPage(Page1)
        
    End Sub

    Sub suona2
        
        NativeMe.RunMethod(
    "setAudioSession"Null)
        vv2.Initialize(
    "vv2")
        
    'vv2.LoadVideo(File.DirAssets,"mute.mp3")
        vv.LoadVideoUrl("http://stream-dc1.radioparadise.com/mp3-32")
        vv2.Play
        NativeMe.RunMethod(
    "register"Null)
        NavControl.ShowPage(Page1)
        
    End Sub

    Public Sub ControlEvent (Command As String)
        
    Select Command
            
    Case "play"
                vv.Play
            
    Case "pause"
                vv.Pause
                
    Case "stop"
                    vv.Stop
        
    End Select
    End Sub



    #If OBJC
    @import MediaPlayer;
    #import <AVFoundation/AVFoundation.h>
    #import <AudioToolbox/AudioToolbox.h>
    - (void)setAudioSession {
      AVAudioSession *audioSession = [AVAudioSession sharedInstance];
      NSError *err = nil;
      BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&err];
      if (success) {
         success = [audioSession setActive:YES error:&err];
       success = [audioSession setPreferredSampleRate:4096 error:nil];
       [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
      }
      if (!success)
      [NSException raise:@"" format:@"Error setting audio session: %@", err];
    }
    - (void)register {
       MPRemoteCommandCenter* center = [MPRemoteCommandCenter sharedCommandCenter];
       center.playCommand.enabled = true;
       center.pauseCommand.enabled = true;
       [center.playCommand addTarget:self action:@selector(play)];
       [center.pauseCommand addTarget:self action:@selector(pause)];
    }
    - (void) play {
       NSLog(@"test");
       [self.bi raiseEvent:nil event:@"controlevent:"  params:@[@"play"]];
    }
    - (void) pause {
       [self.bi raiseEvent:nil event:@"controlevent:"  params:@[@"pause"]];
    }

    #end if
    Sub txtmessagerx_TextChanged (Old As String, New As String)
        
    If txtmessagerx.Text = Old Then
            
        
    Else
        
            
    Log("vai sulla sub Creafile")
        
    End If
    End Sub

    Sub btnbackchiamata_Click
        pnlchiamata.Visible=
    False
        lblmessagerx.Visible=
    False
        lblmessagerx2.Visible=
    False
        lblmessagerx3.Visible=
    False
        lblmessagerx4.Visible=
    False
        btnbackchiamata.Visible=
    False
        lblcarico.Visible=
    False
        
        pnlselect.Visible=
    True
        txta.Visible=
    True
        txtb.Visible=
    True
        txtc.Visible=
    True
        txtd.Visible=
    True
        btnreturn.Visible=
    True
        btnstop.Visible=
    True
        btnvainumeri.Visible=
    True
    End Sub

    Sub btnvainumeri_cLICK
        pnlchiamata.Visible=
    True
        lblmessagerx.Visible=
    True
        lblmessagerx2.Visible=
    True
        lblmessagerx3.Visible=
    True
        lblmessagerx4.Visible=
    True
        btnbackchiamata.Visible=
    True
        lblcarico.Visible=
    True
        
        pnlselect.Visible=
    False
        txta.Visible=
    False
        txtb.Visible=
    False
        txtc.Visible=
    False
        txtd.Visible=
    False
        btnreturn.Visible=
    False
        btnstop.Visible=
    False
        btnvainumeri.Visible=
    False
    End Sub
    Sub btnstop_Click
        vv.Stop
        txta.Text=
    ""
        txtb.Text=
    ""
        txtc.Text=
    ""
        txtd.Text=
    ""
        txta.Text=
    "A"
        txtb.Text=
    "B"
        txtc.Text=
    "C"
        txtd.Text=
    "D"
        
    End Sub


    Sub imgreturn_Click
        txta.Text=
    ""
        txtb.Text=
    ""
        txtc.Text=
    ""
        txtd.Text=
    ""
        txta.Text=
    "A"
        txtb.Text=
    "B"
        txtc.Text=
    "C"
        txtd.Text=
    "D"
    End Sub
     
  2. Star-Dust

    Star-Dust Expert Licensed User

    Chiedi ancora dell'App taglia code?

    [​IMG]
     
    Last edited: May 21, 2019
  3. fifiddu70

    fifiddu70 Well-Known Member Licensed User

    si, praticamente sono alla fine dei lavori, mi manca solo la versione per iphone, ho già tutto pronto per android e per poter finire i lavori devo ultimare la versione iphone.
     
  4. Star-Dust

    Star-Dust Expert Licensed User

    quindi la tua domanda è per iphone?

    Non fai andare L'App in background in questo modo su iOS
     
  5. fifiddu70

    fifiddu70 Well-Known Member Licensed User

    ma esiste un modo per fare funzionare tutto in background ? in pratica deve poter ricevere i numeri chiamati in background e appena corrisponde deve svegliarsi e suonare avvisandoci del numero appena chiamato., da quel che ho capito in iphone non c'è modo di far funzionare in background l'app o per capirci come il modulo service di android, e quindi avevo trovato questo codice che sfrutta la radio streaming per rimanere attiva e non essere uccisa dal sistema.
     
  6. Star-Dust

    Star-Dust Expert Licensed User

    Si, ma è complicato devi alzare di livello la tua programmazione che a quanto vedo da codice che hai postato ancora da poco più che newbie,
    Ma nel forum trovi qualcosa scritto da Erel in merito, fai qualche ricerca.
     
  7. Star-Dust

    Star-Dust Expert Licensed User

    Ma non avevi cambiato lavoro?
     
  8. fifiddu70

    fifiddu70 Well-Known Member Licensed User

    Ho fatto il tecnico dei flipper da dicembre fino a fine maggio poi non so se mi rinnoveranno il contratto.
     
  9. Star-Dust

    Star-Dust Expert Licensed User

    esistono ancora i flipper da voi in Italia?

    Non lavori mica da GameStop?
     
    Last edited: May 24, 2019
  10. LucaMs

    LucaMs Expert Licensed User

    W i flipper !!! Abbasso le app :D
     
  11. fifiddu70

    fifiddu70 Well-Known Member Licensed User

    no, chi sono gamestop? magari se cercano personale posso fare domanda, io fine settimana mi scade il contratto.
     
  12. Star-Dust

    Star-Dust Expert Licensed User

    E' una catena. https://www.gamestop.it

    Ma hai lasciato Partanna per un lavoro precario a tempo determinato?
     
  13. fifiddu70

    fifiddu70 Well-Known Member Licensed User

    Si, infatti prossima settimana sarò dinuovo a Partanna, in attesa di trovar lavoro.
     
  14. LucaMs

    LucaMs Expert Licensed User

    Un enorme in bocca al lupo.
     
  15. fifiddu70

    fifiddu70 Well-Known Member Licensed User

    Grazie, crepi !!!
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice