Autore Topic: Da emulatore a dispositivo mobile...problema socket  (Letto 563 volte)

Offline leo87

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    windows 8
Da emulatore a dispositivo mobile...problema socket
« il: 10 Giugno 2013, 11:37:44 CEST »
0
Ho un problema con la mia app. Praticamente mi funziona su emultore ma quando la installo sul mio android la comunizione socket non funziona.

Premetto che sul manifest dò i permessi internet e location_state e cambio gli indirizzi di connessione con quello che prendo dal sito (IL MIO IP - Scopri l'indirizzo IP della tua connessione internet - DNS Dinamico Free - Annunci di Lavoro Free - Annunci di Lavoro Gratis) e la porta sia su serve che sull'app è 51000 e la connessione parte su thread  cosa altro mi sfugge??

grazie

riporto un pò di codice:
Codice (Java): [Seleziona]
public class MainActivity extends Activity{
        public String ret="true";
        public boolean attesa=true;
        @Override
            protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        View.OnClickListener gestore2 = new View.OnClickListener() {
            public void onClick(View view) {
                    switch(view.getId()){
                    case R.id.button2:
                        if(autentificazione()){
                                Connect1 task = new Connect1();
                            task.execute();
     
                        }
                        else{
                                Intent intent = new Intent(getApplicationContext(),Registration.class);
                                String pkg=getPackageName();
                                String mess="Errore nell'inserimento. Torna indietro per il login oppure registrati. Non utilizzare NOT,not o _ nel login";
                                intent.putExtra(pkg+".myStrApp",mess);
                                startActivity(intent);
                        }
                     break;
                    }      
            }
        };
    //faccio partire il button login
    Button a1=(Button)findViewById(R.id.button2);
    a1.setOnClickListener(gestore2);
       

        }



    public boolean autentificazione(){
       
          EditText outputView1 = (EditText)findViewById(R.id.editText1);
          Editable debug1 = outputView1.getText();
          String nameinput1 = debug1.toString();
          user = nameinput1;
         
          EditText outputView2 = (EditText)findViewById(R.id.editText2);
          Editable debug2 = outputView2.getText();
          String nameinput2 = debug2.toString();
          pass = nameinput2;
        //controlli locali

          return true;

                 
         
    }
   
 
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
   
    //validate user
   protected class Connect1 extends  AsyncTask<Void,String,String>{
       
           protected String doInBackground(Void... params){
               
                InetAddress serverAddr;
                try {  //10.0.2.2
                        serverAddr = InetAddress.getByName("10.0.2.2");  //qiu cambio ip quando la provo sul cellulare
                        try {
                                Socket socket = new Socket(serverAddr, 51000);  //la porta è uguale a quella del server
                                String message = "01"+user+"_"+pass;
                               
                                PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
                                out.println(message);
                               
                                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                                ret=in.readLine();
                               
                                socket.close();
                       
                               
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                } catch (UnknownHostException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

                return ret;
        }
        public void onPostExecute(String s) {
            if(ret.equals("true")) {
                        Intent prov1=new Intent(getApplicationContext(),SearchCity.class);
                        String pkg=getPackageName();
                        prov1.putExtra(pkg+".myString1", user);
                        startActivity(prov1);
                }
            else{
                //altra activity
            }
        }
    }
   
}

Post unito: 11 Giugno 2013, 14:11:38 CEST
nessuna idea?
« Ultima modifica: 11 Giugno 2013, 14:11:38 CEST da leo87, Reason: Merged DoublePost »