Autore Topic: Come connettersi a una VPN da App  (Letto 371 volte)

Offline mkvan82

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Come connettersi a una VPN da App
« il: 01 Settembre 2016, 10:23:07 CEST »
0
Buongiorno a tutti,

mi presento: sono Mike e da pochi mesi sviluppo su Android Studio per cui mi sento ancora un neofita.

Dovrei verificare la possibilità di interazione di un App su  SO Android con un Web Service posto su una rete privata. Pertanto ho bisogno che da dentro l'applicazione sia possibile attivare una VPN  ( precedentemente configurata sullo smartphone ) anche solo per loggare la lista utenti  ( è il porting su smartphone di una applicazione desktop per intendersi )

1) Nel file manifest ho inserito questa permission

Codice (Java): [Seleziona]
 
        <Service android:name="MyVpnService"
            android:permission="android.permission.BIND_VPN_SERVICE">
            <intent-filter>
                <action android:name="android.net.VpnService"/>
            </intent-filter>
        </Service>

2) Ho creato una classe di nome MyVpnService che estende android.net.VpnService e che ha questi metodi "overridati"

 @Override
    public int onStartCommand(Intent intent, int flags, int startId)
 {  ....codice ...}
 @Override
    public void onDestroy()
{  ....codice ...}
3) Ho richiamato  dalla mainactivity il codice per startare il servizio

Codice (Java): [Seleziona]
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent currintent) {

 // questo metodo è chiamato quando la VPN è stata acconsentita dall'utente.

        if (requestCode == 123) {

            // Mi avvalgo di un intent locale per startare il servizio di VPN.
            Intent localintent = new Intent(this, MyVpnService.class);
           try {
               startService(localintent);
           }
           catch(Exception ex)
           {
                  Log.d("startservice", "Failed");
           }
            startActivity(currintent);  // questa activity figlia mi parte correttamente, currintent è stato passato a parametro.

        }
    }

In debug vedo che non riesco ad accedere alla onstartCommand, dove sbaglio ?

Grazie mille

Mike